簡體   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