Hey,
also ich habe mir das EntityFramework jetzt mal angesehen. Das auslesen aus der DB funktionierte wieder perfekt, nur das Einfügen hat wieder einen Fehler verursacht:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| DBEntities context = new DBEntities(); Personen p = new Personen(); p.Name = ""; context.Personen.Add(p); try { scont.SaveChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message); } |
Er sagt mir dann, dass ein Fehler beim aktualisieren der Einträge aufgetreten ist. In der Datenbank habe ich für alle Parameter (vom Primärschlüssel abgesehen) den Wert NULL erlaubt.
Zum anderen habe ich noch eine Frage zu LINQ/EntityFramework:
Ich hatte mir jetzt ja meine eigenen Klassen Person, Transaktion usw. geschrieben und diese dann auf die DB gemappt. Das macht das EntityFramework jetzt ja automatisch. Ich hatte jetzt aber neben den DB-Feldern noch weitere Funktionalitäten & Variablen mit in die Klassen eingebaut.
So hatte die Klasse Person z.B. eine List<Transaktion> transaktionen, in der alle Transaktionen abgespeichert waren. Die Klasse Transaktionen war wiederum mit der DB verknüpft und die Tabelle verweist mit einem Fremdschlüssel auf Person.
Beim speichern der Person hätte ich ja immer die Liste durchlaufen müssen und alle Transaktionen einzeln in die DB schieben/updaten müssen.
Bietet hier das Framework einfachere Möglichkeiten dies zu realisieren? Sonst würde ich die automatisch erzeugte Klasse Personen entsprechend an meine bedürfnisse anpassen (für die INotifyPropertyChanged muss ich hier ja eh rumfummeln).
Edit:
achso was mir bei dem EntityFramework noch aufgefallen ist ist, dass ich wenn ich im ProjektA das ganze einbinde und in ProjektB einen Verweis auf ProjektA lege, habe ich die Klasse Personen nicht in ProjektB zur Verfügung. Das ist für mich jedoch erforderlich. Muss man hier noch irgendwelche Einstellungen übernehmen? Ich will in ProjektB nur auf das Obejkt, nie auf die Datenbank zugreifen...
Vielen Dank