Middle
Kaip vyksta susijusių entitetų įkėlimas C#?
sobes.tech AI
Atsakymas iš AI
Dažnai susijusios entitiy įkeliamos C# naudojant ORM bibliotekas, tokias kaip Entity Framework Core. Pagrindiniai metodai:
- Skubus (Eager) įkėlimas: Susijusios duomenys įkelti kartu su pagrindine entitiy viename užklausoje į duomenų bazę.
// Naudojant Include metodą skubiam įkėlimui var postsWithComments = context.Posts .Include(p => p.Comments) .ToList(); - Aktyvus (Explicit) įkėlimas: Susiję duomenys aiškiai įkelti po pagrindinės entitiy gavimo.
Naudojant vieno naršymo savybes, vietoj// Pagrindinės entitiy gavimas var post = context.Posts.Find(1); // Aiškus susijusių komentarų įkėlimas context.Entry(post) .Collection(p => p.Comments) .Load();.Collection()naudojamas.Reference().// Susijusio autoriaus įkėlimas context.Entry(post) .Reference(p => p.Author) .Load(); - Vėlyvas (Lazy) įkėlimas: Susiję duomenys automatiškai įkelti pirmo kreipimosi metu. Reikalauja proxy klasių konfigūracijos arba priklausomybių injekcijos ir yra numatytas elgesys kai kuriose ORM.
Entity Framework Core reikalinga// Įjungus vėlyvą įkėlimą var post = context.Posts.Find(1); // Kreipimasis į Comments iškvies įkėlimą int commentCount = post.Comments.Count;Microsoft.EntityFrameworkCore.Proxiespaketo įdiegimas ir.UseLazyLoadingProxies()iškvietimasDbContextkonfigūracijoje. Naršymo savybės turi būti pažymėtos kaipvirtual.
Pasirinktas metodas priklauso nuo naudojimo scenarijaus ir kompromiso tarp našumo (užklausų skaičiaus) ir įkeltų duomenų kiekio.