2010-11-19 10 views
0

Nehmen wir den einfachen Fall an, eine einfache Beziehung zwischen Tabelle A und Tabelle B, in der B ein Feld A_Id enthält.Wie Sie die Objektbeziehungen in LinqToSql am besten zuweisen

Angenommen, ich habe ein Objekt vom Typ A (currentA) und erstelle ein brandneues B-Objekt.

B newB = new B() { A_id = currentA.Id }; 

Ist dies der richtige Weg, um diese Beziehung zu setzen? Oder sollte ich tun:

B newB = new B() { A = currentA }; 

Im zweiten Fall wird B.A_Id automatisch gesetzt?

Vielleicht muss ich beide explizit festlegen?

B newB = new B() { A = currentA, A_Id = currentA.Id }; 

Ich suche der eleganteste Weg, um diese neue Beziehung zu setzen, so dass ich mich richtig in die Datenbank später speichern kann, und kann es sofort ausnutzen ... zum Beispiel ich tun mag vielleicht:

MessageBox(String.Format("B's parent is now {0}", B.A.Name)); 

Antwort

0

es war mir zunächst nicht intuitiv, aber die Antwort ist:

currentA.Bs.Add(new B()); 

es scheint, dass, wenn Sie ein Objekt in ein EntitySet hinzufügen, sie kümmert sich der Zuweisung der entsprechenden relatio nehmen nship-Eigenschaften für das Added-Objekt.

Verwandte Themen