2011-01-07 7 views
0

Ich habe eine Datenbank mit 'Transaktionen' und 'Transaktionszeilen'. Eine Transaktion hat die grundlegenden gemeinsamen Details und die Transaktionszeilen enthalten die Werte der Komponenten, aus denen die Transaktion besteht. Im herkömmlichen SQL würde ich eine SQL-Transaktion verwenden (Entschuldigung, wir haben jetzt ein mehrdeutiges Wort ...) und dann würde ich INTO-Transaktion einfügen ... dann den IDENTITY-Schlüsselwert aus der neuen Zeile in der Transaktionstabelle holen Fügen Sie in meine Tabelle transaction_line die Identitätsspalte aus der Transaktionstabelle als Fremdschlüssel ein.Verwandte Elemente mit Linq zu SQL hinzufügen

Gibt es eine gute Möglichkeit, dies mit Linq zu tun?

Hier ist, was ich bisher:

account_transaction ac = new account_transaction 
          { 
           transaction_date = DateTime.Now, 
           is_credit = isCredit, 
           account = (db.accounts.FirstOrDefault(a => a.account_id == accountid)) 
          }; 

db.AddToaccount_transaction(ac); 

db.SaveChanges(); 

Ich denke, dazwischen die 'AddToaccount_transaction (ac)' und die 'db.SaveChanges()', ich brauche meine transaction_lines hinzuzufügen.

Antwort

1

Sie sollten nur in der Lage sein, neue transaction_line Objekte zu erstellen und die fremde Entität auf ac festzulegen. In LINQ-to-SQL arbeiten Sie mit Entitätsobjekten anstelle von expliziten Schlüsseln. Indem Sie das Entitätsobjekt auf das Objekt ac setzen, weisen Sie die Ebene an, den Schlüssel zu bestimmen und für Sie festzulegen.

+0

Danke! Das scheint gut zu funktionieren ... – Craig