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();
3 に答える
1
サブ項目はメイン項目とともに保存され、DataClasses にこれらのクラス間の関連付けを与えると、ID も適切に設定されます。
これを行うには、次のように 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 はサブアイテムの追加を処理します。InsertOnSubmit をすべて単独で実行する必要はありません。副作用: アイテムをロードすると、サブアイテムも取得されます。
于 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を作成するとき、ctor内のものが発生するためには、引数なしのctorを実際に呼び出す必要があるようです
于 2008-09-09T22:10:00.443 に答える