Autor Beitrag
Oppi35
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 3



BeitragVerfasst: Di 09.08.11 20:05 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: 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

Für diesen Beitrag haben gedankt: Oppi35
Oppi35 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 3



BeitragVerfasst: 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