ASP.NET 4.0 C#、Linq to SQL:新しい行が作成されたら、別のフィールドにID値を書き戻す必要があります。同じ行。同じテーブルの別のフィールドにLinqに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);
ちょうどあなたがローカル変数に 'newRow.PriKey'を割り当てるしようとしているの楽しみのために(たとえばint型、短い、など)、次に' newRow.Field = localvariable' – peroija
peroija:はい、私はこれを試しましたが、助けにはなりませんでした。最後に、私はこの問題を適切に修正することをあきらめ、データを修正するためのクエリを実行しました。 – johna