Повторное использование таблицы «многие ко многим» с Entity Framework - PullRequest
0 голосов
/ 05 ноября 2018

Привет у меня есть следующие модели:

public class Product 
{
    public Guid Id { get; set; }
    public String Title { get; set; }
}


public class Category
{
    public Guid Id { get; set; }
    public String Name { get; set; }
}


public class Language 
{
    public Guid Id { get; set; }
    public String Title { get; set; }
}

Язык имеет много ко многим отношение к продукту, а также к категории. традиционным способом является создание Language_Product таблицы и Language_Category таблицы, но мне было интересно, возможно ли создать одну таблицу, чтобы я не создавал дубликаты таблиц «многие ко многим» для других моделей, имеющих отношение «многие ко многим» мой язык. что-то вроде ниже (имейте в виду, что их идентификаторы имеют тот же тип данных):

LanguageId                             GroupId     
-------                                ----     
a2b4a2d1255540aeb6c41e4309e14a80       4cf16dd0baa9424e89f7bb43deefd0cc <-- Product
95870ac828c84937baab63ad39b4f420       4cf16dd0baa9424e89f7bb43deefd0cc <-- Product
95870ac828c84937baab63ad39b4f420       55c884375d304f958fa6b4dde1d29559 <-- Category
...

Также, если это возможно, понимает ли EF отношение и смогу ли я получить данные так же, как я использовал для создания отношений «многие ко многим», как и раньше в коде вначале?

1 Ответ

0 голосов
/ 05 ноября 2018

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

Лучше иметь единую таблицу для таких данных, как категории и заголовки, и добавить столбец, чтобы узнать, какая запись какого типа. Тогда у вас также будет одна таблица «многие ко многим».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...