Entity Framework 4 меняет мои имена таблиц, когда я делаю «Создать базу данных из модели» - PullRequest
1 голос
/ 19 января 2012

Я делаю несколько простых вещей с EF4 и наследованием, прежде чем приступить к реальной работе.Я пробовал это разными способами и не могу это исправить.

У меня есть две таблицы:

  • reports_Items (ItemId и т. Д.)
  • reports_DataItems (ItemId,и т.д.)

Мне нужно сохранить префиксы в таблицах базы данных из-за соглашения о кодировании.

Затем я хочу получить сопоставленные сущности с именами Item и DataItem, а DataItem наследует от Items.

Я сделал Database First и создал таблицы, но удалил ключ ItemId из reports_DataItems..

Затем я сгенерировал модель из базы данных.Он создал сущности:

  • reports_Item
  • reports_DataItems

, которые я переименовал в Item и DataItem соответственно.Затем я создал отношение наследования между DataItem и Item.

Итак, до этого момента у меня были объекты, названные так, как я хочу, и таблицы, названные так, как я хочу, плюс наследование.Проблема заключается в том, что если теперь я запустил Generate Database from Model, он удалит все таблицы и создаст их с такими именами:

  • Items
  • Items_DataItem

Есть ли способ добиться того, что я хочу сделать?Заранее спасибо

1 Ответ

2 голосов
/ 19 января 2012

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

Так что, если у вас есть существующая база данных и вы хотите ее использовать, никогда не используйте Генерировать базу данных из модели, потому что этот инструмент не для вашего сценария.

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