我有两张桌子:
Employee
:EmpId(PK),EmpName。EmployeeDetails
:Id(自动增量),EmpId(FK到员工表),地址,ZipCode。我正在使用Entity Framework 6.
当我想插入新的Employee
时,我必须执行两次交易,即两次使用SaveChanges()
,以便插入新员工,然后才使用其Id
作为EmployeeDetails
中的外键。
是否可以在一次交易中执行此操作?
由于
答案 0 :(得分:1)
您应该稍微修改一下您的模型。细节是"部分"员工如果以这种方式创建实体,当您插入员工时,实体框架将为您处理剩下的事情:
<强>员工强>
public class Employee
{
public int EmpId { get; set; }
public string EmpName { get; set; }
public EmployeeDetails EmployeeDetails { get; set; }
}
<强>详情
public class EmployeeDetails
{
public int Id { get; set; }
}
你能做到这一点:
using (dbContext context = new dbContext())
{
Employee emp = new Employee();
emp.EmpName = "John";
emp.EmployeeDetails = new EmployeeDetails
{
//details fields
};
context.SaveChanges();
}