フォーラムがあり、最近アクティブなトピックのリストを表示しています。最後の返信日までに、または返信のないトピックの場合はトピックの投稿日付順にトピックを注文しています。次のクエリは正常に動作します。LINQ to Entitiesクエリで奇数エラーが発生する
var topicsQuery = from x in board.Topics
let lastActivityDate = x.Replies.Any()
? x.Replies.OrderBy(y => y.PostedDate).Last().PostedDate
: x.PostedDate
orderby lastActivityDate descending
select x;
このクエリはうまくいきます。ページが読み込まれるたびにトピックが正しく並べられます。しかし、今、私が更新活動を探して、類似したクエリを実行AJAX呼び出しがあります。
topics = (from x in DBContext.Topics
let lastActivityDate = (x.Replies.Any()
? x.Replies.OrderBy(y => y.PostedDate).Last().PostedDate
: x.PostedDate)
where x.BoardID == boardID
where lastActivityDate > lastTopic.PostedDate
orderby lastActivityDate
select x).ToList<Topic>();
を誰もがこのLINQクエリに何かを見ることができますか?
LINQ to Entitiesメソッド 'MyProject.Models.Reply Last [返信](System.Collections.Generic.IEnumerable`1 [MyProject.Models.Reply])メソッドが認識されません。このメソッドをストア式に変換することはできません。
私はあなたが違いを強調することができ、OPのバージョンとの違いを見ることができませんか? –
@ Jani:より多くの文脈で答えを更新しました。 –
@Maheshは怪我をする可能性があります。すべてのトピックをメモリにロードしました.DBMSとアプリケーションサーバにとって非常に高価なソリューションです。それは良い考えではありません。 –