Poizvedba LINQ Orderby Descending

Prepričan sem, da bo to razmeroma preprosto.

Imam poizvedbo LINQ, ki jo želim razvrstiti po datumu zadnjega ustvarjanja.

Glej:

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

Poskusil sem tudi:

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

vendar se pri tem pojavi napaka :

Ni preobremenitve za metodo 'OrderByDescending' ima 0 argumentov

Glede na to, kar sem prebral, sem prepričan, da bi prvi način, ki sem ga naredil, moral delovati. Poskušal sem spremeniti padajoče v naraščajoče, da bi videl, ali to kaj naredi, vendar je ostalo enako.

Hvaležen bi bil, če bi kdo pogledal poizvedbo in ugotovil, ali delam kaj narobe. Hvala :)

Rešitev

Izbrati morate lastnost za razvrščanje in jo kot izraz lambda posredovati OrderByDescending

kot:

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

Resnično bi morala delovati prva različica vaše izjave LINQ. Ali je t.Delivery.SubmissionDate dejansko izpolnjen z veljavnimi datumi?

Komentarji (1)

Mislim, da to najprej ni uspelo, ker naročate vrednost, ki je nič. Če je tabela Delivery povezana s tujim ključem, morate najprej vključiti to tabelo, primer spodaj:

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

Mislim, da bi moral biti drugi stavek

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