Ich muss in zwei Tabellen in einer einzigen Abfrage einfügen. Ist dies in LINQ möglich?Einfügen in 2 Tabellen in einer einzelnen Abfrage mit LINQ
Derzeit verwende ich insertonsubmit() 2 mal.
Ich muss in zwei Tabellen in einer einzigen Abfrage einfügen. Ist dies in LINQ möglich?Einfügen in 2 Tabellen in einer einzelnen Abfrage mit LINQ
Derzeit verwende ich insertonsubmit() 2 mal.
Die Datenbank reicht nicht, bis Sie SubmitChanges
aufrufen. Es gibt keine greifbaren Kosten, die mit mehreren Anrufen an InsertOnSubmit
verbunden sind - warum also nicht einfach das tun?
Dies führt immer noch zu zwei TSQL INSERT
Befehlen - es ist einfach nicht möglich, in zwei Tabellen in einem einzigen regulären INSERT
Befehl einzufügen.
"Dies wird immer noch zu" sollte wahrscheinlich lesen "Dies wird immer noch in zwei resultieren" –
@Joe - danke. Meine stoischen Finger! –
Wenn Ihre Tabellen haben einen Primärschlüssel/Fremdschlüsselbeziehung zueinander sind, dann haben Sie auch zwei Objekte, die Sie miteinander verknüpfen können:
InternetStoreDataContext db = new InternetStoreDataContext();
Category c = new Category();
c.name = "Accessories";
Product p = new Product();
p.name = "USB Mouse";
c.Products.Add(p);
//and finally
db.Categories.Add(c);
db.SubmitChanges();
Das Ihr Objekt und alle verknüpften Objekte hinzufügt, wenn die Einreichung die Veränderungen.
Beachten Sie, dass dafür ein Primärschlüssel in beiden Tabellen erforderlich ist. Andernfalls bietet Ihnen LINQ keine Verknüpfungsmöglichkeit.
Hier sind gute Beispiele für LINQ to SQL verwenden: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
was ist db, db ist databasecontext obj oder irgendein anderes Objekt – vineth
Wenn Sie uns etwas Code zeigen wir vielleicht in der Lage Ihnen ein bisschen mehr helfen. –