Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Entity Framework; Datenbank aus Modell generieren
Oppi35 - Di 09.08.11 20:05
Titel: Entity Framework; Datenbank aus Modell generieren
Hallo Zusammen,
ich möchte im Entity Framework Designer gerne eine Struktur anlegen. Mit CreateDatabase möchte ich dann dieses Modell z.B. im SQL-Server implementieren.
Leider klappt das bei mir nicht so einfach. Bisher bin ich wie folgt vorgegangen:
1. Konsolenanwendung angelegt
2. Neues Entity Modell hinzugefügt und ein paar Entitäten erstellt
Nach drücken von F5 kommt der Fehler:
"Warnung 1 Fehler 2062: Für die Instanzen von EntitySet und AssociationSet im EntityContainer Model1Container wurde keine Zuordnung angegeben. C:\Users\Frank\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Model1.edmx 31 9 ConsoleApplication5"
Erst wenn ich eine Datenbank aus dem Modell generiere, und das DDL Script erzeugt wird, ist die Zuordnung vorhanden.
Warum muss ich beim EF bereits im Entwurfsmodus eine Verbindung zu irgendeiner Datenbank herstellen?
Außerdem ist es besonders ungünstig, wenn man an einem Rechner nur die Express-Version installiert hat, da man hier mit "Datenbank aus Modell generieren" keine Verbindung zu einem SQL-Server herstellen kann. Zumindest nicht auf dem gleichen einfachen Weg, wie mit der Professional Version.
Mit Linq to SQL gehts wesentlich einfacher. Hier legt man die Connection im Code fest, und mit CreateDatabase() wird die Datenbank ohne zu murren angelegt. Trotzdem wüßte ich auch gerne, wie das mit dem EF funktioniert.
Viele Grüße
Frank
dark-destination1988 - Mi 10.08.11 07:13
das mit der zuordnung ist ja auch richtig so, das framework muss ja wissen welche eigenschaften der Entitäten in welchen datenbank tabellen sind, sobald du neue anlegst musst du also dein script neu ausführen
Oppi35 - Mi 10.08.11 08:34
Hallo dark,
vielen Dank für Deine Antwort.
Das eine Zuordnung zu den Tabellen in der Datenbank bestehen muss ist mir klar. In Linq to SQL gibt man hierzu den Spaltennamen und den Datentyp in den Eigenschaften einer Linq2SQL Spalte ein. So kennt Linq2SQL auch die Zuordnung und man kann mit CreateDatabase() eine Datenbank anlegen.
Wenn ich im EF bereits zur Laufzeit eine Verbindung zu einer Datenbank herstellen muss, verstehe ich nicht, warum es hier überhaupt einen CreateDatabase() Befehl gibt. Ich hätte erwartet, dass ich im Designer irgendwo die Spalte im SQL-Server beschreiben kann, also Name und SQL-Datentyp. In der XML-Datei wollte ich aufgrund des Aufwands nicht unbedingt rumschrauben.
Viele Grüße
Frank
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!