Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Игорюня
20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
1

Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно

30.05.2015, 05:56. Просмотров 2182. Ответов 1
Метки нет (Все метки)

Здрасти. Есть таблица юзеров и объявлений. У юзера может быть множество объявлений. Здесь действует связь
один-ко-многим. Но юзер также может помечать чужие объявления в избранные, то есть у юзера может быть множество избранных объявлений, и объявление может быть избранным у многих юзеров. Здесь действует связь многие-ко-многим.
Тут получается, что нужно создать между этими двумя таблица как связь один-ко-многим и также многие-ко-многим.

Вот тут код, показывающий связи между моделями:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class User
{
   public int Id { get; set; }
 
   //связь один ко многим
   public virtual ICollection<Advert> Adverts{ get; set; }//обычные объявления юзера
 
   //связь многие ко многим
   public virtual ICollection<Advert> ChosenAdverts { get; set; }//избранные объявления юзера
}
 
public class Advert
{
   public int Id{ get; set; }
 
   //связь один ко многим
   public int? UserId{ get; set; }
   public virtual User User{ get; set; }//владелец объявления
 
   //связь многие ко многим
 
   public virtual ICollection<User> SelectedUsers { get; set; }//множество избравших юзеров
}
Собственно, как EF6 сможет понять, какая связь куда относится? Мне кажется, что тут образуется каша.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2015, 05:56
Ответы с готовыми решениями:

Связь многие-ко-многим в Entity Framework
делаю задания с моделями сущностей entity framework. на примере студентов и курсов, у каждого...

Связь многие ко многим (Entity Framework)
Мне нужна связь многие ко многим. Нашел вот тут хороший туториал который объясняет как ее сделать...

Entity Framework. Связь между таблицами один ко многим
Здравствуйте. Столкнулся с такой проблемой - у меня есть таблицы Тестов и Вопросов (к тестам),...

Связь многие ко многим EntityFramework Code First
Всем привет! Столкнулся с проблемой при проектировании БД со связью многие-ко-многим. Ситуация...

Entity Framework в модель не добавляется таблица со связью многие ко многим
Всем привет. Проблема в следующем, в модель представления данных Entity Framework не могу добавить...

1
m@cChe
44 / 44 / 26
Регистрация: 15.05.2013
Сообщений: 224
Записей в блоге: 1
Завершенные тесты: 1
31.05.2015, 17:14 2
Игорюня, переопределите в контексте функцию
C#
1
OnModelCreating(DbModelBuilder modelBuilder)
и настройте в связи как Вам угодно.

Добавлено через 3 часа 16 минут
пример:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<User>()
                 .HasMany(c => c.ChosenAdverts)
                 .WithMany(c => c.SelectedUsers )
                 .Map(m =>
                 {
                     m.MapLeftKey("AdvertsId");
                     m.MapRightKey("UserId");
                     m.ToTable("UsersAdverts");
                 });
 
            base.OnModelCreating(modelBuilder);
        }
вроде того.

http://metanit.com/sharp/entityframework/3.4.php
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2015, 17:14

LINQ-запрос при отношении "многие-ко-многим" (Entity Framework)
Добрый день! Второй вечер подряд не могу понять как в случае EF и Linq To Entites составить запрос...

Entity Framework: не создается промежуточная таблица для связи "многие-ко-многим"
Здравствуйте. Пытаюсь создать базу данных и наполнить ее чем то. База создается и наполняется,...

Связь один ко многим
Как сделать данную связь? Чтобы при выборе значения в комбобоксе, показывалось 3 значения. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru