Hallo,
ich bräuchte Hilfe/Tips bei der Erstellung der Zuordnungsschicht des Entity-Framework Modells.
Per Default wird ja eine 1:1 Zuordnung erstellt so dass die vom EF erstellten Objekte unmittelbar aus den DB-Tabellen hervorgehen.
Ich würde gern die Möglichkeit nutzen die Objekte unabhängig von der Tabellenstruktur in der DB zu definieren, was ja im EF auch möglich sein soll.
Dazu habe ich ein kleines Beislpielprojekt mit zwei Tabellen erstellt. Die eine "Names" enthält nur eine UserID (Int32) und den Nachnamen (String).
Die Zweite "Prenames" enthält nur die UserID (Int32) und den Vornamen (String).
Ich möchte nun die Zuordnungsschicht so definieren, dass ich in der konzeptionellen Schicht ein Objekt "Fullnames" erhalte, dass UserID, Vorname und Nachnamen enthält.
Dazu habe ich in der Design-Ansicht der edmx-Datei ein neues Objekt "Fullnames" erstellt mit den Eigenschaften UserID, Name, Prename und in den Zuordnungsdetails die Tabellen Names und Prenames zugeordnet. (siehe Anhang localDBModel01.PNG)
Jetzt habe ich im Fehler-Fenster immer drei Fehler der Art:
"Fehler 11008: Die Zuordnung 'NamesPrenames' ist nicht zugeordnet."
"Fehler 11008: Die Zuordnung 'FullnamesNames' ist nicht zugeordnet."
"Fehler 11008: Die Zuordnung 'FullnamesPrenames' ist nicht zugeordnet."
Wo soll ich die Associations zuordnen und wie?
Meine Form enthält nur eine DataGridView mit folgendem Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| private void Form1_Load(object sender, EventArgs e) { ctx = new SimpleDB01Entities(); ObjectQuery<Fullnames> fn = ctx.Fullnames; try { this.dataGridView1.DataSource = fn; } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
Das Erstellen des Projektes ist erfolgreich, nur beim Ausführen bekomme ich den Fehler:
"Fehler bei der Vorbereitung der Befehlsdefinitionen. Details finden Sie in der internen Ausnahme."
und die dataGridView Form ist leer.
Welche interne Ausnahme ist hier gemeint? Im System-Log steht nichts drin und andere Fehlermeldungen sehe ich nicht.
Was mache ich falsch? Auch nach langem Lesen der MSDN zum EF bin ich ratlos.
Kann mir bitte jemand einen Tipp geben oder einen Link, Hinweis o.ä.?
Vielen Dank im Voraus.