![](/img/trans.png)
[英]Converting a Linq expression tree that relies on SqlMethods.Like() for use with the Entity Framework
[英]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.