2009-04-24 13 views

答えて

2

SubmitChangesに電話するまで、データベースの送信は行われません。 InsertOnSubmitへの複数の通話に関連した具体的な費用はありません。

これでも2つのTSQL INSERTコマンドが発生します。通常の単一のINSERTコマンドで2つのテーブルに挿入することはできません。提出時に、あなたのオブジェクトとリンクされているすべてのオブジェクトを追加します

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(); 

を:あなたのテーブルがお互いに主キー/外部キー関係を持っている場合は

+0

"これはまだ"これは2つの結果になる "と思われます。 –

+1

@Joe - ありがとうございます。私の息が止まった指! –

3

、あなたはまた、あなたがお互いにリンクすることができます2つのオブジェクトを持っています変更。

これが機能するには、両方のテーブルにプライマリキーが必要です。それ以外の場合、LINQはリンク可能性を提供しません。あなたは私たちが多分できもう少しあなたを助けるためにいくつかのコードを表示した場合http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

+0

dbとは何ですか、dbはdatabasecontext objまたは他のオブジェクトです – vineth

関連する問題