Изменить имя таблицы во время выполнения, используя Entity Framework 4 - PullRequest
0 голосов
/ 25 марта 2011

Можно ли изменить имя таблицы, в которую отображается конкретная сущность, в Entity Framework 4 (сначала модель)? Мне нужно создать одну модель для каждого клиента и, следовательно, нужно добавить префикс к именам таблиц. Может быть, проще использовать одну базу данных для каждого клиента. Какова лучшая практика?

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Использование базы данных для каждого клиента.Базы данных должны иметь одинаковую схему.Изменение сопоставления во время выполнения не является хорошей идеей.

Редактировать:

Модель для каждого клиента означает EDMX для каждого клиента.Помните, что метаданные являются общими.Таким образом, в мультитенантном приложении (именно так я понимаю ваше описание) каждое изменение метаданных будет изменять метаданные для каждого запроса.Также использование отдельной базы данных выглядит как лучшая архитектура с точки зрения безопасности и производительности.

Другой вопрос, можно ли изменить метаданные во время выполнения.Метаданные хранятся в MetadataWorkspace.Вы можете прочитать их, но я не уверен, что вы также можете изменить их (я проверю это в выходные).

0 голосов
/ 25 марта 2011

EF-генерируемая модель генерируется на основе схемы вашей базы данных. Я не понимаю, как вы можете изменить схему в EF. Не вычисляет в моей маленькой голове.

С учетом сказанного вы, возможно, можете написать хранимую процедуру, которая изменяет таблицу, и вызвать эту хранимую процедуру через контекст EF.

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