Entity Framework - сделать большую таблицу edmx более удобной для разделения? - PullRequest
3 голосов
/ 25 августа 2011

Я думаю, что это вопрос лучшей техники или лучшего способа снять кожу с кошки!

Представьте себе меню с пунктами (пунктами меню). У меня есть таблица под названием MenuItem, которая, например, «Спагетти Болоньезе», с ней связано много другой информации, кроме лучшего описания и изображения. Например.

  • Основная информация (имя, описание, изображение и т. Д.)
  • Пищевая ценность (около 15 столбцов)
  • Информация об аллергии (около 16 столбцов)
  • Информация о питании (еще 7 колонок) (религиозные и т. Д.)

Как и сейчас, у меня все это есть в таблице one на SQL-сервере, что для меня логично, так как дизайн не повторяется, несмотря на то, что он составляет список полей для таблицы дольше, чем хотелось бы. Я уже чувствовал себя немного плохо из-за постоянного расширения таблицы базы данных. Но теперь мы также хотим добавить информацию «Рецепт», еще около 7 столбцов.

Я использую Entity Framework 4.latest и чувствую, что, возможно, есть функциональность, которая поможет мне разделить это в EDMX? (Это что такое ComplexTypes?) Или мне просто нужно сделать это в классе ViewModel, который я вызываю?

Я думаю, что то, что я использую в своем коде для лучшей сортировки, - это что-то вроде

  • MenuItem.Recipe.Ingredients
  • MenuItem.Nutrition.Fat
  • и т.д.

1 Ответ

0 голосов
/ 25 августа 2011

Сложные типы могут помочь вам, но имейте в виду, что сложные типы не могут содержать свойства навигации, не могут иметь значение null и всегда загружаются вместе с сущностью. Другая возможность - использовать разбиение таблицы - это позволит вам отобразить несколько связанных друг с другом объектов в одну таблицу. Основными особенностями разделения таблицы являются:

  • Объекты могут использовать только свойства первичного ключа
  • Существует одна основная сущность, а другие рассматриваются как отношения (свойства навигации)
  • Связанные сущности должны существовать - они не являются обязательными, поэтому при вставке новой основной сущности вы должны также вставить эти связанные сущности, даже если они пусты
  • Связанные объекты должны быть загружены с полной, отложенной или явной загрузкой
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...