Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 20726|Atsakyti: 0

[Šaltinis] Skirtumai tarp .net IQueryable ir IList

[Kopijuoti nuorodą]
Paskelbta 2016-08-22 11:22:07 | | |

IList (IList<T>) iš karto sukuria nuolatinius duomenis atmintyje, kuri neįgyvendina "atidėto vykdymo", o jei įkeltas objektas turi susietų objektų, susietas objektas nebus įkeltas (nei iš karto, nei tingus).

IQeurable <T>iš karto nesukuria nuolatinių duomenų atmintyje, o tik įkelia duomenis į atmintį, jei jie yra perkeliami (pvz., per forreach), konvertuojami į sąrašą ir pan., ir gali pasiekti "atidėtą vykdymą", jei šiuo metu įkeltas objektas turi asociacijų, šis susietas objektas gali būti įkeltas per kitą prieigą.

Pažvelkite į šią kodo dalį:
//IList的情况
IList vartotojai = res. ToList(); Vartotojai buvo įkelti į atmintį, bet susietas objektas (UserInfos) kiekvienam vartotojui nebuvo
                       yra įkeltas, todėl kita kodo eilutė nepraeina sklandžiai
var ss = vartotojai. Kur(p = > p.UserInfos.ID != 3); Čia pranešama apie klaidą, nes P objekto UserInfos įkelti negalima

IQuerable situacija
IQueryable vartotojai = res. AsQueryable(); Vartotojai neįkeliami iš karto, o susietą objektą galima gauti "tingiai įkeliant"
                                   Supratau
var ss = vartotojai. Kur(p = > p.UserInfos.ID != 3); Atitinkamas SS buvo sėkmingai gautas čia




Ankstesnis:.net daro WeChat plėtrą, kad gautų vartotojo informaciją ir nuskaitymo funkciją [su šaltinio kodu]
Kitą:Paprašykite "Alipay" užsakymo stebėjimo disko naudojimo, @小渣渣
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com