Wat zijn POCO-klassen in Entity Framework?


Beste antwoord

POCO is gewoon oude CLR (Common Language Runtime) -objecten. Het is eigenlijk een entiteit in een domein. In het entiteitsraamwerk is het meestal handig in het eerste model van de code, niet in het eerste model van de database. Deze klasse erft de functionaliteit van een specifiek raamwerk of specifieke technologie niet. Het is een eenvoudige openbare klasse en bevat alleen eigenschappen en methoden. Deze methoden implementeren geen persistente logica zoals het opslaan en ophalen van gegevens uit de database. Deze klassen worden ook wel Persistence Ignorant-klassen genoemd. In feite fungeert het als een laag om te communiceren met de rijen en kolommen van de databasetabel.

Poco Class-voorbeeld

openbare klasgroep

{

openbare int ID {get; set; }

openbare string GroupName {get; set; }

openbaar ApplicationUser-lid {get; set; }

openbare string GroupDescription {get; set; }

openbare ICollection ChatRooms {get; set; }

}

POCO gedraagt ​​zich beter dan DTO [Design]

Een DTO ” Het enige doel is om de status over te dragen en zou geen gedrag moeten hebben. Zie Martin Fowler “s uitleg van een DTO voor een voorbeeld van het gebruik van dit patroon.

Terwijl A POCO de regels van OOP volgt. Het zou (maar het hoeft niet) de status en gedrag te hebben. POCO komt van POJO, bedacht door Martin Fowler [ anekdote hier ]. Hij gebruikte de term POJO als een manier om het sexier te maken om de zware EJB-implementaties van het framework af te wijzen. POCO moet in dezelfde context in.Net worden gebruikt. Laat frameworks je niet dicteren objectontwerp.

Voor meer informatie over .NET en Entity framework, ga naar mijn YouTube-kanaal

Dot Net

Antwoord

POCOs (gewone oude CLR-objecten) zijn gewoon entiteiten van uw domein. Normaal gesproken worden de entiteiten automatisch voor u gegenereerd als we het entiteitsraamwerk gebruiken. Dit is geweldig, maar helaas zijn deze entiteiten worden afgewisseld met databasetoegangsfunctionaliteit, wat duidelijk in strijd is met de SOC (Separation of concern). POCOs zijn eenvoudige entiteiten zonder enige gegevenstoegangsfunctionaliteit, maar bieden toch alle mogelijkheden EntityObject functioneel ities like

  • Lazy loading
  • Tracking wijzigen

Hier is een goed begin hiervoor

POCO Entity-framework

U kunt ook zo gemakkelijk POCOs genereren vanuit uw bestaande Entity-frameworkproject met behulp van codegeneratoren.

EF 5.X DbContext-codegenerator

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *