ASP.NET 4.0 C#、Linq to SQL: 新しい行が作成されたら、ID 値を同じ行の別のフィールドに書き戻す必要があるという要件があります。
これを試しましたが、うまくいきませんでした (行が見つからないか、変更されていません):
//newRow created and fields populated here
dc.Table.InsertOnSubmit(newRow);
dc.SubmitChanges();
newRow.Field = newRow.PriKey;
dc.SubmitChanges();
また、行を新しい変数に読み込んで更新しようとしましたが、同じエラーが発生しました:
//newRow created and fields populated here
dc.Table.InsertOnSubmit(newRow);
dc.SubmitChanges();
row2 = (from r in dc.Table where r.PriKey = newRow.PriKey select r).FirstOrDefault();
row2.Field = newRow.PriKey;
dc.SubmitChanges();
独自の SQL コマンドを作成して実行することでこれを簡単に実行できると思いますが、もっと簡単な方法はありますか?
編集:これがトランザクションにラップされているという事実は違いがありますか?
using (CMSDataContext dc = new CMSDataContext(Config.ConnString))
{
dc.Connection.Open();
dc.Transaction = dc.Connection.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);