2017-02-24 6 views
1

私は2つのテーブルを持っています - ブログと投稿(1対多の関係)。リスト内の子プロパティで注文

私は3以上のブログをすべて取得したいと思います。ポストの公開日までにブログとオーダーリストの投稿を3つだけ取っておきたいと思います。

_context.Blogs.Where(x => x.IsActive && x.Posts.Count >= 3).OrderByDescending(p => p.Posts.OrderByDescending(x => x.PublishDate)).ToList(); 

が、私は、エラーメッセージが出てい::

私がしようとしていた何

ArgumentException: At least one object must implement IComparable. 

UPDATE:

さて、私はそれが問題になるだろう見ます投稿の投稿順に並べ替えます。 私はBlogテーブルのLastBuildDateプロパティも持っています。だから私はLastBuildDateでどのように注文できますか?

+0

投稿テーブルが – Cieja

+0

が、これはむしろ意味はないでしょう含まれているあなたのすべき最初の注文のブログによると、その後、PublishDateであっ記事、順序を表示するとき?あなたはブログを最初の投稿を参照するためにBlogを拡張することができますので、ブログで注文し、投稿を表示して投稿を並べ替えることができます... – Icepickle

+0

私は私のlinq上で少し錆びますそれは何でブログを注文するかを知っていますか?ブログ注文の中の投稿を注文することは必ずしも正しいとは言えません。 – beardedmogul

答えて

0

これを試してみてください、私はそれを試していません。

_context.Blogs.Where(x => x.IsActive && x.Posts.Count >= 3).OrderByDescending(x => x.LastBuildDate).ToList(); 
+0

私のlinqは非常に錆びています: -/OrderByDescending()内のすべてを削除しようとしています。 – beardedmogul

3

ネストされた順序は、これをオフに投げている:外側の順序はIComparableを実装していない投稿財産であることを、オブジェクトを、評価している

.OrderByDescending(p => p.Posts.OrderByDescending(x => x.PublishDate)) 

。たとえば、あなたがした場合:

.OrderByDescending(p => p.Posts.Max(x => x.PublishDate)) 

MaxはDateTimeを返します。しかし、投稿のOrderbyDescendingはここで評価できない何かを返します...

+0

大丈夫、ありがとう。私は私の問題を更新しました。 – Cieja

関連する問題