Динамическое добавление новых таблиц в текстовый текст или EDM - PullRequest
0 голосов
/ 07 июня 2011

Я знаю, что мы можем добавить внешний файл карты XML для динамического изменения имен таблиц в контексте данных.Но согласно тому, что я видел в большинстве постов, это можно сделать, только если структуры таблиц одинаковы (те же столбцы и первичный ключ).

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

Или возможно лидостичь этого из структуры сущности?

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Я пойду наперед и скажу «нет», потому что ORM не предоставляет динамическую модель времени выполнения, это предварительно созданная статическая модель набора данных, к которому вы запрашиваете.

Тогда все, что вам нужнодействительно, чтобы сделать его динамичным, нужно перестроить его так, как вам нужно.Это потребует от вас вызова сборки при добавлении новых таблиц или столбцов, но об этом не может быть и речи.И это можно сделать разными способами.

Однако, если это ваша проблема, вы не должны пытаться решить эту проблему с помощью ORM, такого как linq-to-sql.Это никогда не было построено для этого.Я бы также порекомендовал Entity Framework, поскольку он во всех отношениях превосходил linq-to-sql (и linq-to-sql больше не разрабатывается).

0 голосов
/ 07 июня 2011

Другим способом было бы сначала использовать код EF 4.1, где вы можете динамически генерировать и компилировать код и загружать его в свой домен приложения.Ну, я думаю, что вы можете использовать динамическую компиляцию и для EF 4.0, но Edmx и отображения сложны.

И это будет новый контекст, вы не сможете изменить существующий контекст, но можете объединиться с новой библиотекой классов.Но все это должно произойти при отражении, потому что у вас не будет общих типов, доступных во время компиляции для linq.

...