Hallo,
seit ein paar Tagen versuche ich mich im EntityFramework einzuarbeiten.
Ich stehe jetzt aber vor einem Problem, wie der Ochse vorm Berg...
Ich umschreibe kurz den Sachverhalt:
Ich habe eine Datenbank (SQL-Server 05, bzw 08), möglicherweise aber noch nicht ganz optimal am laufen (Fremdschlüssel, Abhängigkeiten...wird aber noch angeschnitten!)..
ich habe auch dazu ein Programm geschrieben, mit normalen SQL-Abfragen (DataReader, BindingSource ect...), und will jetzt auf das EF "umsteigen".
ch habe mir das DataModel anhand der DB erstellt. Inkl. der Fremdschlüssel...
Jetzt aber zu meinem Anliegen!
Ich habe 3 Tabellen
Projekt: ProjektNr (PK), ProjectName,CompanyNR,PartnerNR
= Ein Projekt wird durch eine ID identifiziert, bekommt einen Namen, und ihr wird über die CompanyNr und der PartnerNR eine Firma und ein Partner zugeteilt
Partner: PartnerNr, PartnerName,Tel...ect...
Company: CompanyNr, CompanyName, usw..
Ist eigentlich doch eine typische Master-Detail Situation würde ich sagen, oder?
Naja, im ModelDesigner hat die Project-Entität durch die Fremdschlüsse die Navigationseigenschaften Company und Partner bekommen (siehe Bild)
Wenn ich jetzt einer BindingSource als DataSource über den Context die Entität Project zuteile, kommt nicht das raus was ich gern möchte...
Ich wollte eine Übersicht der Projekte, mit Firmen und Partnernamen haben...
aber irgendwo hab ich da einen Fehler!
Ich kann den jetzt gerade auch nicht nachbilden, da ich jetzt ein Metadatenfehler vorliegt (wurde aber hier behandelt, habe ja die suche gequält! ;-) )...
Ich habe das vorher jedenfalls über so probiert:
Ergebnis war dann, dass ich noch die Navigationseigenschaften als Spalten hatte...
Ich hoffe das das jetzt nicht doch schonmal hier beschrieben wurde
über google hab ich auch nix gefunden...
EIGENTLICH ist das doch nicht soo schwer, oder?
Oder liegt das Problem am DB-Design?
Danke schonmal für Hilfe!
EDIT:
Ich bin jetzt soweit, dass mir im datagridview projektnr und projektname angezeigt werden. Ich habe bei ProjAll noch ein Include der Partner gemacht, und habe mal eine Schleife durch die Entität ( for each proj in ProjAll) laufen lassen.
Da kann ich dann projektnamen,nr, die dazugehörige firma und den partner mit allein attributen anzeigen lassen....
wie schaffe ich es nun, die beiden spalten, firmenname und partnername mit ins datagridview zu bekommen?
seit ein paar Tagen versuche ich mich im EntityFramework einzuarbeiten.
Ich stehe jetzt aber vor einem Problem, wie der Ochse vorm Berg...
Ich umschreibe kurz den Sachverhalt:
Ich habe eine Datenbank (SQL-Server 05, bzw 08), möglicherweise aber noch nicht ganz optimal am laufen (Fremdschlüssel, Abhängigkeiten...wird aber noch angeschnitten!)..
ich habe auch dazu ein Programm geschrieben, mit normalen SQL-Abfragen (DataReader, BindingSource ect...), und will jetzt auf das EF "umsteigen".
ch habe mir das DataModel anhand der DB erstellt. Inkl. der Fremdschlüssel...
Jetzt aber zu meinem Anliegen!
Ich habe 3 Tabellen
Projekt: ProjektNr (PK), ProjectName,CompanyNR,PartnerNR
= Ein Projekt wird durch eine ID identifiziert, bekommt einen Namen, und ihr wird über die CompanyNr und der PartnerNR eine Firma und ein Partner zugeteilt
Partner: PartnerNr, PartnerName,Tel...ect...
Company: CompanyNr, CompanyName, usw..
Ist eigentlich doch eine typische Master-Detail Situation würde ich sagen, oder?
Naja, im ModelDesigner hat die Project-Entität durch die Fremdschlüsse die Navigationseigenschaften Company und Partner bekommen (siehe Bild)
Wenn ich jetzt einer BindingSource als DataSource über den Context die Entität Project zuteile, kommt nicht das raus was ich gern möchte...
Ich wollte eine Übersicht der Projekte, mit Firmen und Partnernamen haben...
aber irgendwo hab ich da einen Fehler!
Ich kann den jetzt gerade auch nicht nachbilden, da ich jetzt ein Metadatenfehler vorliegt (wurde aber hier behandelt, habe ja die suche gequält! ;-) )...
Ich habe das vorher jedenfalls über so probiert:
Code:
C#-Code: object projAll = ctxDongle.Project.Include("Company"); bsDongle = new BindingSource(); projAll.MergeOption = MergeOption.OverwriteChanges; Trace.WriteLine(projAll.ToTraceString); bsDongle.DataSource = projAll; grdDongle.DataSource = bsDongle; txtEdit1.DataBindings.Add("text", bsDongle, "ProjectNr"); txtEdit2.DataBindings.Add("text", bsDongle, "ProjectName");
Ich hoffe das das jetzt nicht doch schonmal hier beschrieben wurde
über google hab ich auch nix gefunden...
EIGENTLICH ist das doch nicht soo schwer, oder?
Oder liegt das Problem am DB-Design?
Danke schonmal für Hilfe!
EDIT:
Ich bin jetzt soweit, dass mir im datagridview projektnr und projektname angezeigt werden. Ich habe bei ProjAll noch ein Include der Partner gemacht, und habe mal eine Schleife durch die Entität ( for each proj in ProjAll) laufen lassen.
Da kann ich dann projektnamen,nr, die dazugehörige firma und den partner mit allein attributen anzeigen lassen....
wie schaffe ich es nun, die beiden spalten, firmenname und partnername mit ins datagridview zu bekommen?
Comment