繁体   English   中英

实体框架中的SqlMethods.DateDiffMonth

[英]SqlMethods.DateDiffMonth in the Entity Framework

有谁知道实体框架中SqlMethods.DateDiffMonth的替代品是什么。

这是我尝试使用它时遇到的错误。

LINQ to Entities无法识别方法'Int32 DateDiffMonth(System.DateTime,System.DateTime)'方法,并且此方法无法转换为商店表达式。

看来,目前,您需要使用有效调用SQLServer DATEDIFF方法的eSQL语句来表达这一点

例如:

db.entity.Where("SqlServer.DATEDIFF('MONTH', [start date], [end date]) = 1");

(详情请见此处

但是,当.NET Framework 4.0发布时(或者你现在可以使用它,如果你喜欢使用beta软件!:)你应该能够使用新SqlFunctions类DateDiff方法 ,它是新系统的一部分。 .NET 4.0中的.Data.Objects.SqlClient命名空间

由于您使用LINQ to Entities,最好的方法是使用以下内容:

var query = query.Where(e => DateTime.Today >= EntityFunctions.TruncateTime(e.StartDateTime)
&& DateTime.Today <= EntityFunctions.TruncateTime(e.EndDateTime));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM