私はしばらくの間linq to sqlを使用してきましたが、このタイプの問題に遭遇することがよくあります....
例えば、私は 2 つの db テーブルを持っています
-テーブル: 請求書 ("Id" int auto-increment, "InvoiceDate" datetime)
-Table: InvoiceItems ("Id" int auto-increment, "InvoiceId" int (FK), "SomeReference" varchar(50))
"SomeReference" フィールドには、親の Invoice レコードの Id といくつかのランダムな文字を組み合わせた値が保持されます。例えば。「145AHTL」
SomeReference の値を設定する前に、請求書 ID の値を知る必要がありますが、これは DB に保存されたときにのみ入力されます。同じ Linq to SQl DB コンテキストに親レコードと子レコードの両方がありますが、子レコードに SomeReference を入力できるように、親請求書レコードに対してのみ「SubmitChanges」を実行したいだけです。SomeReference が設定される前に、子 InvoiceItem レコードを DB に保存したくありません。
Linq to Sql を使用してこれを達成するにはどうすればよいですか?
linq to sql がデータベースへの保存に「作業単位」のアイデアを使用していることは理解していますが、まだ保存する準備ができていないときにレコードを不必要にデータベースに保存することを避ける方法がわかりません。これを回避する方法がない場合、なぜ開発者はわざわざ linq to sql を使用するのでしょうか? これは非常に大きな欠点のように思えます。
編集:この例は、私の問題を説明するために私が思いついたものにすぎないことに注意してください。