如何避免循环引用映射实体在不同的程序集/项目上的实体框架6

本文关键字:实体 程序集 框架 项目 循环 何避免 引用 映射 | 更新日期: 2023-09-27 18:01:38

假设我在项目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);

因为在实体框架中,你需要在ClassTwo中有一个ClassOne的集合来映射它在代码第一,我如何正确地映射它并避免在项目a和B之间生成的循环引用?

如何避免循环引用映射实体在不同的程序集/项目上的实体框架6

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

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