LB.*_*LB. 4 linq datetime linq-to-entities
如果给定一个将DateTime作为字符串的实体,那么我可以选择在日期使用LINQ to Entities过滤数据?
它似乎不支持我做DateTime转换.
基本上,我想完成:
var filtered = from item in entities.itemsSet
where Convert.ToDateTime(shift.starttime) >= startDate
&& Convert.ToDateTime(shift.endtime) < endDate
select item;
Run Code Online (Sandbox Code Playgroud)
我有什么选择来实现这一目标?
使用System.Data.Objects.SqlClient.SqlFunctions
有一个名为DateDiff的函数,它具有接受字符串作为日期的重载.
SqlFunctions类中的所有函数都编译为SQL语句,并且只能在Linq中用于实体.
[EdmFunctionAttribute("SqlServer", "DATEDIFF")]
public static Nullable<int> DateDiff(string datePartArg, string startDate, string endDate)
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/dd466158.aspx
您需要传入一个像"day"这样的字符串作为第一个参数,指定要比较的日期部分.该函数直接映射到SQL函数DATEFIFF:
http://msdn.microsoft.com/en-us/library/ms189794.aspx
Linq to SQL有一个类似的类,只是警告你.
| 归档时间: |
|
| 查看次数: |
11140 次 |
| 最近记录: |