Hvad er POCO-klasser i Entity Framework?


Bedste svar

POCO er almindelige CLR-objekter (Common Language Runtime) . Det er dybest set en enhed i et domæne. I enhedsrammen er det normalt nyttigt i kode første model ikke i database første model. Denne klasse arver ikke funktionaliteten i nogen specifik ramme eller teknologi. Det er en simpel offentlig klasse og indeholder bare egenskaber og metoder. Disse metoder implementerer ikke vedvarende logik såsom at gemme og hente data fra databasen. Disse klasser kaldes også Persistence Ignorant-klasser. Dybest set fungerer det som et lag til at kommunikere med databasetabellens rækker og kolonner.

Eksempel på Poco-klasse

public class Group

{

public int ID {get; sæt; }

public string GroupName {get; sæt; }

offentligt ApplicationUser-medlem {get; sæt; }

offentlig streng GroupDescription {get; sæt; }

offentlig ICollection ChatRooms {get; sæt; }

}

POCO opfører sig bedre end DTO [Design]

A DTO ” s eneste formål er at overføre tilstand og skal ikke have nogen adfærd. Se Martin Fowler “s forklaring på en DTO for et eksempel på brugen af ​​dette mønster.

Mens en POCO følger reglerne for OOP. Det skal (men behøver ikke) have tilstand og adfærd. POCO kommer fra POJO, opfundet af Martin Fowler [ anekdote her ]. Han brugte udtrykket POJO som en måde at gøre det mere sexet at afvise de ramme tunge EJB-implementeringer. POCO skal bruges i samme sammenhæng i.Net. Lad ikke rammerne diktere din objekt “design.

Hvis du vil vide mere om .NET og Entity framework, skal du tjekke min youtube-kanal

Dot Net

Svar

POCOer (almindelige gamle CLR-objekter) er simpelthen enheder i dit domæne. Normalt når vi bruger enhedsrammer, genereres enhederne automatisk for dig. Dette er fantastisk, men desværre er disse enheder er blandet med databaseadgangsfunktionalitet, som klart er imod SOC (Separation of concern). POCOer er enkle enheder uden nogen dataadgangsfunktionalitet, men giver stadig alle funktionerne EntityObject funktionel ting som

  • Lazy loading
  • Change tracking

Her er en god start på dette

POCO-enhedsramme

Du kan også generere POCOer så let fra dit eksisterende Entity-rammeprojekt ved hjælp af kodegeneratorer.

EF 5.X DbContext code generator

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *