【问题标题】:How can I set up two navigation properties of the same type in Entity Framework without use Fluent API如何在不使用 Fluent API 的情况下在实体框架中设置两个相同类型的导航属性
【发布时间】:2016-12-29 12:33:27
【问题描述】:

我正在尝试使用 codefirst 创建数据库。我想从同一张表中创建两个 ForeingKey。但是当我设置两个相同类型的导航属性时,会出现如下错误:

在依赖类型 Models.UserUserWatchListItem 上找不到外键名称“FollowedUser”。 Name 值应该是逗号分隔的外键属性名称列表。

public class UserUserWatchListItem
{
    public int Id { get; set; }        

    [Key,ForeignKey("FollowedUser")]
    public virtual User FollowedUser { get; set; }
    public int FollowedUserId { get; set; }

    [Key,ForeignKey("FolloweeUser")]
    public int FolloweeUserId { get; set; }
    public virtual User FolloweeUser { get; set; }


}

【问题讨论】:

    标签: ef-code-first foreign-key-relationship


    【解决方案1】:

    使用这个:

    public class UserUserWatchListItem
    {
        public int Id { get; set; }        
    
        public int FollowedUserId { get; set; }
    
    
        public int FolloweeUserId { get; set; }
    
        [ForeignKey("FollowedUser")]
        [InverseProperty("FollowedUsers")]
        public virtual User FollowedUser { get; set; }
    
        [ForeignKey("FolloweeUser")]
        [InverseProperty("FolloweeUsers")]
        public virtual User FolloweeUser { get; set; }
    
    }
    
    public class User
    {
        ...
    
        [InverseProperty("FollowedUser")]
        public virtual ICollection<UserUserWatchListItem> FollowedUsers { get; set; }   
    
        [InverseProperty("FolloweeUser")]
        public virtual ICollection<UserUserWatchListItem> FolloweeUsers { get; set; }   
    
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多