Как настроить два свойства навигации одного типа в Entity Framework без использования Fluent API

Я пытаюсь создать БД, используя codefirst. я хочу создать два ForeingKey из одной таблицы. Но когда я устанавливаю два свойства навигации одного типа, получаю ошибку, например:

Имя внешнего ключа «FollowedUser» не найдено в зависимом типе Models.UserUserWatchListItem. Значение 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; }


}

person Ersin    schedule 29.12.2016    source источник


Ответы (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; }   

}
person Iraj    schedule 29.12.2016