2009-05-25 15 views
1

Ich habe ein bestehendes Modell für mein Projekt. Ich würde gerne zu Entity Framework wechseln, aber ich möchte mein Modell nicht durch das von EF generierte Modell ersetzen.Kann ich ADO.NET Entity Framework mit vorhandenem Modell verwenden?

Darüber hinaus unterscheidet sich mein Modell sehr von meinem Datenbankschema, so dass alle Chancen, das von EF generierte Modell zu verwenden und das gesamte erforderliche Refactoring durchzuführen, zu schwierig erscheinen.

Gibt es eine Möglichkeit, eine vorhandene Domäne, eine vorhandene Datenbank zu haben und EF nur zu verwenden, um meiner Domäne Methoden hinzuzufügen, um die O/RM-Schicht einzuschließen?

Antwort

1

In .NET 3.5SP1, dann ist die Antwort ein großes Fett "Nein", fürchte ich. In .NET 4.0 sieht die Geschichte vielversprechender aus, mit der Einführung von POCO-Unterstützung (die Ihnen hoffentlich erlauben sollte, Ihre eigenen Objekte zu verwenden, obwohl ich es noch nicht in der öffentlichen Beta getestet habe).

Beachten Sie, dass Sie POCO (mit Ihren eigenen Objekten) mit LINQ-to-SQL durchführen können, indem Sie eine externe Zuordnungsdatei verwenden (und ein DataContext-Objekt bereitstellen) - aber die Tools helfen Ihnen nicht dabei (es möchte standardmäßig die Codegenerierung verwenden).

Für jetzt ist vielleicht NHibernate (und ähnlich) Ihre beste Wahl.

1

Sie können die beta release von Entity Framework herunterladen, wenn Sie ein MSDN-Abonnent sind. Es hat Unterstützung für POCO-Objekt, das ist, was Sie beziehen und für die EF 1.0 unter heftige Kritik für kam.

Das ADO.NET Design-Team hat gerade vor kurzem veröffentlicht @POCO in the Entity Framework: Part 1 - The Experience, die Ihnen helfen wird, auf dem richtigen Weg zu kommen.

Aus meiner Erfahrung mit EFPocoAdapter (Vorläufer zu EF 4.0), bin ich froh, EF 4.0 vorschlagen zu können.

Sie erhalten auch Unterstützung für einige coole n-Tier-Szenarien, was bedeutet, dass Sie Ihre Objekte an einen anderen Layer übergeben können, der sie ändern und zurückgeben kann und Sie sie weiterhin in der Datenbank beibehalten können. Und die anderen Schichten müssen nichts über den Entitätsrahmen wissen, damit Sie eine saubere Trennung von Bedenken erhalten.

Verwandte Themen