Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 17.07.2016, 20:32   #1
Павел Nix
Новичок
 
Регистрация: 17.07.2016
Сообщений: 1
Репутация: 10
По умолчанию Модель для друзей социальной сети

Здравствуйте. Необходимо организовать логику друзей пользователя в социальной сети. Окончательно запутался.

Код:

public class Friendlist : EntityBase //от EntityBase наследуется Id
{ 
//ссылка на владельца списка друзей
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_Users_FriendList_Friends", "Users", "Friendlist_Id", "FriendList", "Id");
         //Database.AddForeignKey("FK_Users_FriendRequests_Requests", "Users", "Friendrequests_Id", "FriendRequests", "Id");
 
            Database.AddForeignKey("FK_FriendList_Users_FriendsOwner", "FriendList", "FriendsOwner_Id", "Users", "Id");
            Database.AddForeignKey("FK_FriendRequests_Users_FriendRequestsOwner", "FriendRequests", "FriendRequestsOwner_Id", "Users", "Id");
      }

Я понимаю, что нагородил бреда, но если кто-то понял меня, буду рад любой помощи.
Павел Nix вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищем программиста для новой социальной сети MEGAV Работа на постоянной основе 0 16.12.2014 01:26




11:52.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru