私のデータベースには、Employee と Address の 2 つのテーブルがあります。フォームでは、1 つのタブが両方のテーブルのフィールドを表します。OKボタンのクリックイベントの下で、データを挿入しようとしましたが、例外が発生しました。一度に 1 つのテーブルにデータを挿入できますが、両方は挿入できません。
私は例外があります:
「同じキーを持つオブジェクトが既に ObjectStateManager に存在します。既存のオブジェクトは Modified 状態です。オブジェクトは、Added 状態の場合にのみ ObjectStateManager に追加できます。」
私のコードは次のとおりです。
try
{
using (TransactionScope ts = new TransactionScope())
{
db.Connection.Open();
string empid = txtEmpId.Text.ToString();
Employee emp = db.Employees.Single(a => a.Emp_ID == empid);
emp.Full_Name = txtFullName.Text;
db.AddToEmployees(emp);
db.SaveChanges();
Address address = db.Addresses.Single(b => b.Emp_Id == empid);
address.House_No = txtHouseNo.Text.ToString();
db.AddToAddresses(address);
db.SaveChanges();
ts.Complete();
MessageBox.Show("completed successfully");
}
}
catch (Exception e1)
{
MessageBox.Show(e1.Message);
}
finally
{
if (db.Connection.State == ConnectionState.Open)
{
db.Connection.Close();
}
}
助けてください!