Entity Framework 4.1 Code First Self-Referencing One-to-Many and Many-to-Many Association

У меня есть пользователь, который может иметь коллекцию пользователей, которые ему нравятся ...

Другой пользователь может иметь коллекцию пользователей, которые ему нравятся ....

Если пользователю A нравится пользователь B и если пользователь B любит пользователя A, и они могут тусоваться. Мне нужно отправить друг другу свои контактные данные. Как представить такую ​​модель в Entity Framework Code First?

public class User
{
    public int UserId { get; set; }

    public int? UserLikeId { get; set; }
    public virtual UserLike UserLike { get; set; }
}

public class UserLike
{
    public int UserLikeId { get; set; }

    public int UserId { get; set; }
    public virtual User User { get; set; }

    public virtual ICollection<User> LikeUsers { get; set; }
}

Верна ли эта модель? Я не могу заставить это работать.

Я пробовал другой способ, но он тоже не работает ...

Я пытался добавить коллекцию пользователей в таблицу пользователей.

Например:

public virtual ICollection<User> userlike { get; set; }

public class User
{
    public int UserId { get; set; }
    public virtual ICollection<UserLike> UserLikes { get; set; }
}

public class UserLike
{
    public int UserLikeId { get; set; }

    public int UserId { get; set; }
    public virtual User User { get; set; }

    public int LikeUserId { get; set; }
    public virtual User LikeUser { get; set; }
}

Я получаю эту ошибку, когда пытаюсь добавить пользователя и кого он любит:

Обнаружены конфликтующие изменения роли UserLike_LikeUser_Target в отношении UserLike_LikeUser.

Как лучше всего представить такую ​​модель?

17
задан bitek 30 December 2013 в 16:48
поделиться