LINQ volgorde door aflopende query

Ik ben er zeker van dat dit een relatief eenvoudige zal zijn.

Ik heb een LINQ query die ik wil ordenen op de meest recent gemaakte datum.

Zie:

        var itemList = from t in ctn.Items
                        where !t.Items && t.DeliverySelection
                        orderby t.Delivery.SubmissionDate descending
                        select t;

Ik heb het ook geprobeerd:

       var itemList = (from t in ctn.Items
                        where !t.Items && t.DeliverySelection
                        select t).OrderByDescending();

maar dit geeft een fout :

Geen overload voor methode 'OrderByDescending' neemt 0 argumenten

Van wat ik'heb gelezen, ben ik er vrij zeker van dat de eerste manier die ik'heb gedaan zou moeten werken. Ik'heb geprobeerd aflopend in oplopend te veranderen om te zien of het iets doet, maar het blijft hetzelfde.

Ik'zou dankbaar zijn als iemand een blik op de query zou kunnen werpen en zien of ik'iets verkeerd doe. Bedankt :)

Oplossing

Je moet een eigenschap kiezen om op te sorteren en deze als een lambda expressie doorgeven aan OrderByDescending

zoals:

.OrderByDescending(x => x.Delivery.SubmissionDate);

Echt, maar de eerste versie van je LINQ statement zou moeten werken. Is t.Delivery.SubmissionDate wel gevuld met geldige data?

Commentaren (1)

Ik denk dat dit eerst mislukt omdat je een waarde aan het bestellen bent die null is. Als Delivery een foreign key geassocieerde tabel is dan moet je deze tabel eerst opnemen, voorbeeld hieronder:

var itemList = from t in ctn.Items.Include(x=>x.Delivery)
                    where !t.Items && t.DeliverySelection
                    orderby t.Delivery.SubmissionDate descending
                    select t;
Commentaren (1)

Ik denk dat de tweede moet zijn

var itemList = (from t in ctn.Items
                where !t.Items && t.DeliverySelection
                select t).OrderByDescending(c => c.Delivery.SubmissionDate);
Commentaren (3)