Здравствуйте. Необходимо организовать логику друзей пользователя в социальной сети. Окончательно запутался.
Код:
public class Friendlist : EntityBase
{
public virtual User FriendOwner { get; set; }
public virtual ICollection<User> UsersFriends { get; set; }
}
public class FriendRequests : EntityBase
{
public virtual User RequestsOwner { get; set; }
public virtual ICollection<User> UsersRequests { get; set; }
}
User будет хранить
Код:
public virtual ICollection<User> Friends { get; set; }
public virtual ICollection<User> Requests{get; set;}
или же просто две ссылки типа? Тут вот совсем не понятно
Код:
public virtual Friendlist Friends { get; set;}
public virtual FriendRequests Requests{ get; set;}
Миграция в таком случае имеет вид, закоменчен код, для случая, если User будет хранить ссылки, а не коллекции:
Код:
public override void Up()
{
Database.AddTable(
"FriendLists",
new Column("Id", DbType.Int64, ColumnProperty.PrimaryKeyWithIdentity),
new Column("FriendsOwner_Id", DbType.Int64, 30, ColumnProperty.ForeignKey));
Database.AddTable(
"FriendRequests",
new Column("Id", DbType.Int64, ColumnProperty.PrimaryKeyWithIdentity),
new Column("FriendRequestsOwner_Id", DbType.Int64, 30, ColumnProperty.ForeignKey));
Database.AddForeignKey("FK_FriendList_Users_FriendsOwner", "FriendList", "FriendsOwner_Id", "Users", "Id");
Database.AddForeignKey("FK_FriendRequests_Users_FriendRequestsOwner", "FriendRequests", "FriendRequestsOwner_Id", "Users", "Id");
}
Я понимаю, что нагородил бреда, но если кто-то понял меня, буду рад любой помощи.