mik*_*f22 47 c# linq linq-to-entities entity-framework
我正在尝试执行以下代码并收到错误
public List<Log> GetLoggingData(DateTime LogDate, string title)
{
var context = new LoggingEntities();
var query = from t in context.Logs
where t.Title == title
&& t.Timestamp == LogDate
select t;
return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我收到的错误是"LINQ to Entities不支持指定的类型成员'Date'.仅支持初始值设定项,实体成员和实体导航属性." 我已尝试过将各种符号转换为字符串的各种尝试,只比较日期部分,但似乎无法获得正确的组合.任何帮助是极大的赞赏.
Hen*_*bæk 87
如果您使用的是EF 6.0+,则可以使用DbFunctions.TruncateTime(DateTime?)
:
var query =
from t in context.Logs
where t.Title == title
&& DbFunctions.TruncateTime(t.Timestamp) == LogDate.Date
select t;
Run Code Online (Sandbox Code Playgroud)
注意:对于
DbFunctions
不可用的早期版本的EF ,EntityFunctions.TruncateTime(DateTime?)
可以使用.
mik*_*f22 23
不是最好的解决方案,但它确实有效.由于各种原因,我此时必须使用.net 3.5并且修改数据库会很困难.无论如何,这是一个有效的解决方案:
var query = from t in context.Logs
where t.Title == title
&& t.Timestamp.Day == LogDate.Day
&& t.Timestamp.Month == LogDate.Month
&& t.Timestamp.Year == LogDate.Year
select t;
Run Code Online (Sandbox Code Playgroud)
不是最优雅的解决方案,但它是有效的.
归档时间: |
|
查看次数: |
53136 次 |
最近记录: |