【问题标题】:Insert data into multiple table in entity framework将数据插入实体框架中的多个表中
【发布时间】:2016-11-08 09:04:39
【问题描述】:

我有 2 个如下表。我首先使用 DB 方法

public class Team
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

public class Employee
{
    public long Id { get; set; }
    public long TeamId { get; set; } // foreign key reference fom Team table
    public string Name { get; set; }
    public long ReferedBy { get; set; } // foreign key reference fom employee table
}

现在我必须将数据插入两个表一次。例如我需要插入如下数据。

在引入引用列之前,我使用下面的代码插入。

        Team team = new Team();
        team.Name = "Team1";
        team.Description = "Some Description";

        Employee E1 = new Employee();
        E1.Name = "Jon";
        Employee E2 = new Employee();
        E2.Name = "Harish";

        team.Employee.Add(E1);
        team.Employee.Add(E2);

        DBEntity db = new DBEntity();
        db.Set<Team>().add(team);
        db.saveChanges();

在介绍了按列引用后,我如何将这些引用插入数据库。

【问题讨论】:

    标签: entity-framework model-view-controller entity-framework-6


    【解决方案1】:

    如果您需要以批量插入的方式执行插入,并且 Employee 表的 id 是标识列,则必须调用 SaveChanges() 两次以从 db 获取标识值,以便设置 emp2.​​ReferredBy=emp1 .id;

    如果您要求一键命中数据库,您有两种选择 1. 使用一个事务并调用 SaveChanges 两次,在失败的地方事务回滚。 2. 建立自己的身份技术并在 db 中停止身份。

    查看Get identity before SaveChanges

    【讨论】:

      【解决方案2】:

      public long TeamId { 获取;放; } // Team 表的外键引用

      你需要一对一的关系看我的帖子:

      http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx

      在引入引用列之前,我使用下面的代码插入。

      这里需要自引用实体:

      EF self one-to-many relationship

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-01
        • 2011-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-30
        相关资源
        最近更新 更多