Fragensteller
Database First und die Association-Klasse

Allgemeine Diskussion
-
Hallo zusammen.
ich habe folgende Frage bzw. Problem. Ich möchte eine MVC4 Website erstellen die auf einen Datenbank zugreift die bereits vorhanden ist und von anderen Anwendungen benutzt wird. D.h am Design kann/darf ich nichts ändern.
Nun habe ich 2 Klasse erstellt eine Klasse "Firma" und eine Klasse "Ansprechpartner". Die Klasse Ansprechpartner hat eine Feld FirmaID welches die Firma in der Klasse Firma repräsentiert mit Feld ID. In der Klasse Firma habe ich eine Virtuelle Collection wie folgt
public ICollection<Ansprechpartner> Ansprechpartner {get; set; ]
Wenn ich nun einen neues Ansprechpartner einfüge möchte und _db.SaveChanges(); aufrufe bekomme ich einen Fehler mit der InnerExeption "Ungültiger Spaltenname 'Benutzer_ID'"
Ich habe jetzt schon in den Klassen bei den Feldern ID (Firma) und FirmaID(Ansprechpartner) ein Accotation-Attribut wie folgt angelegt
[Association("AP_Benutzer", "ID", "FirmaID")]
Aber es gibt keine Änderungen. Wer kann mir bitte einen Tipp geben. Danke vorab.
Gruß Frank
- Typ geändert Stefan Kleinewillinghoefer Donnerstag, 21. März 2013 09:44 Warten auf feedback
Alle Antworten
-
Hallo Frank,
Woher die Spalte Benutzer_ID so plötzlich auftaucht, kann ich dir auch nicht sagen (passt inhaltlich vermutlich weder zum Ansprechpartner noch zur Firma, und ich sehe auch keine Verbindung zum AssociationAttribute). Wahrscheinlich hattest Du früher mal eine Assoziation über den Designer erstellt (oder generiert), deren zugeordnete Felder inzwischen im Modell so nicht mehr existieren.
Und warum verkomplizierst Du dich mit dem AssociationAttribute, wo Du das Ganze mit ein paar Klicks im Model-Designer erledigen kannst?
Gewusst wie: Erstellen und Ändern von Zuordnungen (Entity Data Model-Tools)
Gewusst wie: Erstellen und Bearbeiten von Zuordnungsmappings (Entity Data Model-Tools)
Gruß
Marcel -
Hallo Marcel,
Ich arbeite mit den EF5. Wenn ich mit den Designer arbeite dann muss ich es mit dem Code-Generator wieder in eine Code-Klasse erzeugen da ich den ganzen Overhead und die anderen Dinge die das Entity-Framework mit sich bringt gar nicht benötige. Der Code ich smarter und leichter. Die DbContext-Klasse ist klein und wird sehr schnell erzeugt was auf einem Web-Server für nicht ganz unwichtig ist. Bei einer lokalen Anwendung würde ich eventuell auch mit dem Entitiy-Framework arbeiten und nicht mit dem EF5.
Aber kannst du mir dennoch einen Tipp geben auf welchem Feld ich das AssociationAttribut anwenden muss damit es funktioniert. Leider schweigt sich die MSDN aus die die ganzen tollen Codebeispiele alle nur für die einfachsten Dinge gilt.
Gruß Frank
-
Hallo Frank,
Dass EF5 etwas anderes als Entity Framework 5 ist, ist mir neu. Dass Du zum einen über den Database First-Approach schreibst, zum anderen aber ein AssociationAttribute aus dem System.ComponentModel.DataAnnotations-Namensraum verwendest, läßt bei mir leider noch mehr Stirnrunzeln entstehen. Dieses Attribut kenne ich nur aus WCF RIA Services, wo es zusammen mit dem ExternalReferenceAttribute verwendet wird, um Beziehungen zwischen den Entitäten herzustellen. Soviel ich weiß, benötigt man weder im Database First- noch im Code First-Szenario ein AssociationAttribute, aber ich muss zugeben, dass ich EF mit MVC noch nicht verwendet habe. Ich lerne gerne dazu, also bitte kläre mich auf.
Gruß
Marcel
-
Hallo Frank,
hat Dir die Antwort von Marcel geholfen? Wenn ja dann markiere sie bitte als Antwort.
Grüße,
Stefan Kleinewillinghoefer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwicklern“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden koennen.