За отличный совет, который я получил по недавнему вопросу ( Проблема проектирования базы данных ), я включаю шаблон супертипа / подтипа в базу данных, которую создаю для приложения MVC2.Я буду использовать Entity Framework для предоставления моделей в MVC.
Супертипом являются Publications, а подтипами являются Articles, BlogPosts и т. Д. Каждая таблица подтипа будет иметь 2 столбца.составной первичный ключ (pub_id, pub_type) с внешними ключами, которые ссылаются на соответствующие столбцы в таблице супертипа
В целях целостности данных (см. подробные комментарии о принятом решении исходного вопроса) таблица супертипа не должнавключите pub_type в его первичный ключ (в отличие от таблиц подтипов),
И именно здесь Entity Framework, кажется, не играет.Предупреждения, которые я получаю, когда генерирую файл .edmx из моей существующей базы данных:
Отношение 'FK_Articles_Publications' содержит столбцы, которые не являются частью ключа таблицы на первичной стороне отношения.Отношения были исключены.
(и т.скомпрометировать структуру БД и установить составной ключ для таблицы супертипа)?
Если нет, это добавляет дополнительную проблему, требующую присоединения к любой другой таблице, не относящейся к подтипу (и я планирую несколько)для таблицы супертипа требуется наличие столбцов, соответствующих как pub_id, так и pub_type.Например, я хочу, чтобы таблица тем могла связываться с публикациями любого типа через таблицу супертипов - мне нужно было бы хранить (избыточно) pub_type в столбце таблицы тем.
Я довольно новичок в EF (и ORM), но его сила привлекает, и я не хочу отказываться от него.