2016-12-29 24 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; } 

}