2016-12-29 19 views
0

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

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

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; } 


} 

回答

0

使用此:

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; } 

}