Динамическое сопоставление нескольких таблиц с одним объектом - PullRequest
0 голосов
/ 05 ноября 2011

У меня есть несколько таблиц, которые должны добавляться в мою базу данных каждый год, а имя баз данных содержит год (например, sell2005), и я написал несколько ef запросов для этих таблиц, и запросы могут быть только для одной сущности ( как sell2005) но что мне делать, когда add2006 или sell2007 добавить? Как я могу управлять ими с помощью одного запроса, который я написал раньше? спасибо.

1 Ответ

1 голос
/ 07 ноября 2011

Легкого пути нет.EF просто не инструмент для этого сценария.Для EF у вас должна быть «одна таблица», поэтому вы должны либо использовать разбиение с одной реальной таблицей базы данных, разбитой по годам, либо создать представление поверх этих таблиц.

Проблема в том, что в EF у вас есть строгиесвязь между классами и таблицами.Вы не можете иметь один класс, сопоставленный с несколькими таблицами, даже если они абсолютно одинаковы (кроме наследования, которое не является решением для вас ).Таким образом, для обходного пути потребуется несколько сопоставлений SSDL / MSL - по одному для каждой таблицы и создание правильного экземпляра контекста с правильным сопоставлением для каждого запроса.Как я знаю, динамические изменения в отображении невозможны (за исключением изменения файлов SSDL / MSL перед их использованием).

...