Was ist POCO im Entity Framework? [geschlossen]


81

Ich habe gerade angefangen, POCO zu lernen, kann aber seine Verwendung und seinen Vorteil nicht verstehen. Selbst das Folgen des Stackoverflow-Links hat mir nicht geholfen.

Was ist Entity Framework mit POCO?

Kann jemand die Verwendung von POCO anhand eines einfachen Beispiels erklären?


5
Ich denke, der beste Weg für Sie zu verstehen, ist ein Beispiel: pratapreddypilaka.blogspot.com.au/2011/12/…
Jeremy Thompson

Ich bin mir nicht sicher, welche Antwort Sie erwarten, die nicht bereits in Ihrem Link angegeben ist. Wenn Sie nach dem Lesen immer noch nicht verstehen, müssen Sie vielleicht, wie Jeremy vorschlägt, lernen, indem Sie dies tun.
Ameise P

Antworten:


101

POCOs (einfache alte CLR-Objekte) sind einfach Entitäten Ihrer Domain. Wenn wir das Entity Framework verwenden, werden die Entitäten normalerweise automatisch für Sie generiert. Das ist großartig, aber leider sind diese Entitäten mit Datenbankzugriffsfunktionen durchsetzt, die eindeutig gegen den SOC (Separation of Concern) verstoßen. POCOs sind einfache Entitäten ohne Datenzugriffsfunktionalität, bieten jedoch alle Funktionen, die EntityObject bietet

  • Faules Laden
  • Tracking ändern

Hier ist ein guter Anfang dafür

POCO Entity Framework

Sie können POCOs auch so einfach aus Ihrem vorhandenen Entity-Framework-Projekt mithilfe von Codegeneratoren generieren.

EF 5.X DbContext-Codegenerator


2
Ihr Link "POCO Entity Framework MSDN Part-I" ist fehlerhaft. Ist es das jetzt? msdn.microsoft.com/en-us/library/dd456853(v=vs.100).aspx
Aske B.

@ AskeB. danke aktualisiert den Link. das ist der eine
Prabhu Murthy

Ich habe POCOs immer als "einfache alte C-Objekte" bezeichnet. Ist das falsch oder nur anders?
Halter

2
@Halter "Plain ol 'C # -Objekte" oder (wie Prabhu) "CLR-Objekte", da das gleiche Konzept für VB und F # gilt.
Nate Barbettini
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.