Linq to sql を使用して次のトランザクションを実行しようとしています。
しかし、idフィールドが取得されないため、例外が発生します
INSERT ステートメントが FOREIGN KEY 制約と競合しました
じゃあ何をすればいいの?
私のコード:
System.Data.Common.DbTransaction transaction = null;
DBDataContext db = new DBDataContext();
db.Connection.Open();
transaction = db.Connection.BeginTransaction();
db.Transaction = transaction;
Table1 = new Table1();
obj.objName = "some name";
db.Table1s.InsertOnSubmit(obj);
Table2 obj_info = new Table2();
obj_info.Info = "some info";
obj_info.Id = obj.Id;
db.Table2s.InsertOnSubmit(obj_info);
try
{
db.SubmitChanges();
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
}
finally
{
transaction.Dispose();
db.Dispose();
}
編集:たぶん、コードが十分に明確ではなかったため、obj変数には主キー Id があるため、obj.Id は自動生成された ID であり、外部キーである obj_info.Id に挿入する必要があります