繁体   English   中英

与实体框架的多个一对多关系

[英]Multiple one to many relationships with Entity Framework

我正在使用EntityFramework 4.1。

我有以下型号:

public class User 
{
   [Key]
   public int Id { get; set; }
   public string Username { get; set; } 
   public string Password { get; set; }

   public virtual User Creator { get; set; }
   public virtual User LastEditor { get; set; }
}

当我尝试生成我的数据库时,我收到此错误:

无法确定类型“用户”和“用户”之间关联的主要结束。 必须使用关系流畅API或数据注释显式配置此关联的主要结尾。

但我也有这门课:

public class Course 
{
   [Key]
   public int Id { get; set; }
   public string Name { get; set; } 

   public virtual User Creator { get; set; }
   public virtual User LastEditor { get; set; }
}

它工作正常,我生成了这些外键:

Creator_Id
LastEditor_Id

我的用户模型中是否有任何要添加的内容才能使其正常工作?

EF尝试 - 按惯例 - 在User.CreatorUser.LastEditor之间创建一对一的关系,因为它们都引用了它们自己所在的User类。然而, Course类并非如此。 对于Course.CreatorCourse.LastEditor EF,为User创建两个一对多关系。 要在User实现相同的属性,您必须配置与Fluent API的关系:

modelBuilder.Entity<User>()
    .HasOptional(u => u.Creator)     // or HasRequired
    .WithMany();

modelBuilder.Entity<User>()
    .HasOptional(u => u.LastEditor)  // or HasRequired
    .WithMany();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM