15

アイテムによって提供された日付の事前に指定された時間に期限切れになるアイテムのリストをデータベースから返す必要があります。私の誤ったコードは次のとおりです。

return All().Where(o => new DateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)

私が得るエラーは次のとおりです。

LINQ to Entitiesでは、パラメーターなしのコンストラクターと初期化子のみがサポートされています。

誰かが私がこれを修正する方法を知っていますか?

4

3 に答える 3

31

代わりにEntityFunctionsを使用してください。多分CreateDateTimeメソッド。

だから多分このように:

return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)

アップデート:

EF6を使用する場合は、代わりにDbFunctionsを使用してください。

于 2012-12-06T10:19:13.323 に答える
8

次を使用できます。

var result = await db.Articles
          .Where(TruncateTime(x.DateCreated) >= EntityFunctions.TruncateTime(DateTime.Now))
          .ToListAsync();
于 2015-03-24T09:01:07.123 に答える
2

使ってください:

return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)
于 2012-12-06T10:25:39.060 に答える