2008-09-09 18 views
1
var e1 = new E1(); 
e1.e2s.Add(new e2()); //e2s is null until e1 is saved, i want to save them all at the same time 
context.e1s.imsertonsubmit(e1); 
context.submitchanges(); 

cevap

0

Peki - ilk kod bloğunuzun işe yarayıp yaramadığını bilmiyorum, ama sanırım yeni e2'nizi göndermeye ek olarak işaretlemelisiniz. Böylece: Başka bir ctor oluştururken biz gidip orada

var e1 = new E1(); 
var e2 = new e2(); 
e1.e2s.Add(e2); //e2s is null until e1 is saved, i want to save them all at the same time 
context.e1s.insertonsubmit(e1); 
context.e2s.insertonsubmit(e2); 
context.submitchanges(); 
0

Görünüşe göre, birlikte kaydedilir

1

alt öğeleri gerçekleşmesi aslında ctor içinde şeyler için sırayla hiçbir arg ctor aramak zorunda DataClasses ürününüze bu sınıflar arasındaki bir ilişkiyi verirseniz, ana öğeyle ve hatta kimlikler düzgün şekilde ayarlanacaktır.

Böyle senin O/R-Tasarımcı DataClasses için LoadOptions ekleyerek yapabilirsiniz:

MyDataContext mydc = new MyDataContext(); 
    System.Data.Linq.DataLoadOptions lo = new System.Data.Linq.DataLoadOptions(); 
    lo.LoadWith<E1>(p => p.e2s); 
    mydc.LoadOptions = lo; 

LINQ alt öğeleri ekleyerek ilgilenecek Bu şekilde, her biri InsertOnSubmit gerekmez kendi kendine. Bir yan etki: öğeyi yükledikten sonra, alt öğeler de alınacaktır.