webentwicklung-frage-antwort-db.com.de

Was ist Entity Framework fließend API?

Ich höre ständig über das Entity Framework fließend-api, aber ich habe Schwierigkeiten, einen guten Hinweis darauf zu finden. Was ist es?

Wir verwenden das Entity-Framework und das bereitgestellte Modellierungswerkzeug. Ist das alles? Oder ist es etwas anderes?

Wenn es sich nicht um eine zu große Frage handelt, was ist POCO? Ich weiß, es steht für Plain Old CLR Objects, aber was bedeutet das für mich als jemand, der EF bereits mit dem Designer-Modell-Tool verwendet? Wenn diese Frage zu vage ist, ignorieren Sie sie bitte. Ich lerne gerade hier und alle Informationen, die Sie bereitstellen möchten, sind hilfreich.

51
Chev

Entity Framework 4.1 führt den ersten Code-Ansatz für das Schreiben von Datenbankmodellen ein. Dies wird auch als POCO (Plain Old CLR Objects) bezeichnet. Die Idee ist, dass Sie Ihre Datenbank aus diesen Klassen erstellen können, anstatt zuerst die Datenbank zu erstellen und daraus ein Modell zu erstellen.

Es gibt eine Menge guter Blogartikel und MSDN-Dokumentation dazu. Ein guter Startplatz wäre 

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx

http://weblogs.asp.net/manavi/archive/2011/03/27/associations-in-ef-4-1-code-first-part-1-introduction-and-basic-concepts.aspx

Was die fließende API angeht, so werden im Wesentlichen die EF-Klassen verwendet, um Ihre Datenbank zu erstellen, z.

modelBuilder.Entity<Category>().HasKey(c => c.CategoryCode);

Sie geben also manuell an, dass die Category-Tabelle einen Primärschlüssel mit dem Namen "CategoryCode" hat. Sie können die PK auch so deklarieren:

public class Category
{
    [Key]    
    public int CategoryCode { get; set;}
}

Das [Key]-Attribut stammt aus Data Annotations

55
Jason Evans

POCO steht für Plain Old CLR Object.

Artikel zu Fluent API.

5
Xaisoft

Sie können den Code First Fluent API-Abschnitt auf MSDN auch hier überprüfen: http://msdn.Microsoft.com/en-us/library/hh295844

Antwort auf Ihre POCO-Frage: In der Anwendung, an der ich gerade arbeite, verwende ich POCOs, um Daten an mein Silverlight-Frontend zu übergeben (EF hat sie gerade nicht geschnitten). Im Wesentlichen verwende ich die Entitäten, die der EF-Modellierer erstellt hat, massiere sie in eine serialisierbare Version und schicke sie dann über das Kabel hin und her. POCOs stellen bei Bedarf eine Abstraktionsebene bereit. Ich halte es für eine Anpassung des DAO-Patterns an die Serialisierung, anstatt es für den DB-Zugriff zu verwenden, wie es das DAO-Pattern normalerweise tut.

0
Eric Andres

Siehe den Abschnitt über POCO-Klassen in http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-aspaspnet-mvc-application

Grundsätzlich sind POCO-Klassen im Kontext von EF Entitätsklassen, die nicht von der Entity Framework EntityObject-Klasse erben (was Sie standardmäßig in Database First oder Model First erhalten). Wie in einer der anderen Antworten erwähnt, erleichtert dies die Serialisierung der Objekte. Einige Entwicklungs- und automatisierte Testmethoden ziehen es jedoch vor, mit Objekten zu arbeiten, die keinen Bezug zum Entity Framework haben.

0
tdykstra