一次将两个记录插入两个表中,其中一个表使用另一个表作为外键?

时间:2015-12-20 16:09:07

标签: c# sql-server entity-framework visual-studio visual-studio-2013

我有两张桌子:

  • Employee:EmpId(PK),EmpName。
  • EmployeeDetails:Id(自动增量),EmpId(FK到员工表),地址,ZipCode。

我正在使用Entity Framework 6.

当我想插入新的Employee时,我必须执行两次交易,即两次使用SaveChanges(),以便插入新员工,然后才使用其Id作为EmployeeDetails中的外键。

是否可以在一次交易中执行此操作?

由于

1 个答案:

答案 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();
}