これは比較的単純なものになると確信しています。
最後に作成した日付で注文したいLINQクエリがあります。
見る:
var itemList = from t in ctn.Items
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
私も試してみました:
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending();
しかしこれはエラーになります。
メソッド 'OrderByDescending'のオーバーロードは0引数を取りません
私が読んだものから、私が行った最初の方法がうまくいくはずだと確信しています。私はそれが何かをするかどうかを確かめるためだけに降順を昇順に変更しようとしましたが、それは同じままです。
誰かが質問を見て、私が何か悪いことをしているのかどうかを確認できれば幸いです。ありがとう:)
ソートするプロパティを選択し、それをラムダ式として OrderByDescending
に渡す必要があります。
好きです:
.OrderByDescending(x => x.Delivery.SubmissionDate);
実際、LINQステートメントの最初のバージョンでうまくいくはずです。 t.Delivery.SubmissionDate
には実際に有効な日付が入力されていますか?
あなたはnullである値を注文しているので、私はこれが最初に失敗したと思います。 Deliveryが外部キー関連テーブルの場合は、最初にこのテーブルを含める必要があります。以下に例を示します。
var itemList = from t in ctn.Items.Include(x=>x.Delivery)
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
私は2番目のものがあるべきだと思います
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending(c => c.Delivery.SubmissionDate);
私が何らかの理由で私が使うのを好む別のフォーマットでそれを示すために:最初の方法はSystem.Linq.IOrderedQueryableとしてあなたのitemListを返します
using(var context = new ItemEntities())
{
var itemList = context.Items.Where(x => !x.Items && x.DeliverySelection)
.OrderByDescending(x => x.Delivery.SubmissionDate);
}
その方法は問題ありませんが、リストオブジェクトに直接適用したい場合は、
var itemList = context.Items.Where(x => !x.Items && x.DeliverySelection)
.OrderByDescending(x => x.Delivery.SubmissionDate).ToList();
あなたがしなければならないのは、クエリの最後に.ToList()呼び出しを追加することだけです。
注意すべきこと、私の頭の上では、Where()呼び出しで!(not)式を使用できるかどうかを思い出せません。