25


5

AddMonthメソッドを使用したLINQ to Entities

これは私のコードです:

 return Newsletterctx.Subscribers.Count(o =>
     o.Validated == false &&
     o.ValidationEmailSent == true &&
     o.SubscriptionDateTime.AddMonths(1) < DateTime.Now);

私はこのエラーが出ます:

_ LINQ to Entitiesは、メソッド 'System.DateTime AddMonths(Int32)'メソッドを認識せず、このメソッドはストア式に変換できません。 _

3 Answer


36


おそらく、代わりにテストするために日付をシフトできます:

DateTime testDate = DateTime.Now.AddMonths(-1);
return Newsletterctx.Subscribers.Count
            (o => o.Validated == false
             && o.ValidationEmailSent == true
             && o.SubscriptionDateTime < testDate);


34


SqlFunctions classvarを使用できます。

 today =  DateTime.Now; return Newsletterctx.Subscribers.Count(o =>
 o.Validated == false &&
 o.ValidationEmailSent == true &&
 SqlFunctions.DateAdd("month",1,o.SubscriptionDateTime)


1


System.Datetimeライブラリを使用しないLINQ TO ENTITIESにいるため、要求以外でDatetimeを使用する必要があります。

修正日を使用する場合は、リクエスト外で修正日を定義できます。

DateTime compareDate = DateTime.Now.AddMonths(x);