如何避免Entity Framework 6上不同程序集/项目中的循环引用映射实体?

时间:2016-08-09 18:59:49

标签: c# entity-framework entity-framework-6

假设我在项目A中有一个课程:

public class ClassOne
{
    public int Id { get; set; }
    public int ClassTwoId { get; set; }
    public ClassTwo ClassTwo { get; set; }
}

项目B中的一个课程:

public class ClassTwo
{
    public int Id { get; set; }
    public ICollection<ClassOne> ClassOnes { get; set;}
}

和地图:

var entityConfig = modelBuilder.Entity<ClassOne>();
entityConfig.HasRequired(x => x.ClassTwo)
            .WithMany(x => x.ClassOnes)
            .HasForeignKey(x => x.ClassTwoId);

因为在Entity Framework中你需要在ClassTwo中有一个ClassOne的集合来在Code First中映射它,我该如何正确映射它并避免在项目A和B之间生成的循环引用?

1 个答案:

答案 0 :(得分:0)

最好的方法是将所有实体放入同一个项目中。

如果您将它们放在单独的项目中并且您想要阻止循环项目引用,则应该在引用前两个项目的第三个项目中进行映射。