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();
问问题
188 次
3 回答
1
如果您为 DataClasses 提供这些类之间的关联,则子项将与主项一起保存,甚至身份也将正确设置。
您可以通过将 LoadOptions 添加到您的 O/R-Designer DataClasses 来做到这一点,如下所示:
MyDataContext mydc = new MyDataContext();
System.Data.Linq.DataLoadOptions lo = new System.Data.Linq.DataLoadOptions();
lo.LoadWith<E1>(p => p.e2s);
mydc.LoadOptions = lo;
这样 LINQ 将负责添加子项,您不需要单独插入每个项。副作用:加载项目时,子项目也将被检索。
于 2008-09-18T10:24:44.450 回答
0
好吧 - 我不知道你的初始代码块是否可以工作,但我猜你必须在提交时将你的新 e2 标记为插入。因此:
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();
于 2008-09-09T20:48:36.507 回答
0
好了,显然,当您创建另一个 ctor 时,您必须实际调用 no arg ctor 才能使 ctor 中的内容发生
于 2008-09-09T22:10:00.443 回答