LINQ to SQL - две таблицы с одинаковым именем?или альтернативное определение БД? - PullRequest
2 голосов
/ 07 апреля 2011

Мне нужно обновить приложение C #, которое импортирует данные в базу данных с помощью LINQ. Я новичок в LINQ. Проблема, которую я пытаюсь решить, состоит в том, что существует две версии БД. Они имеют одинаковые имена таблиц и идентичны по структуре на 90%, но имеют одну таблицу (из примерно 60), которая имеет другое определение.

Если бы LINQ не использовался, я бы просто выбрал другой запрос в зависимости от того, в какую версию приложения (БД) пользователь хотел импортировать, и оставил бы оставшуюся часть приложения как есть.

У меня сложилось впечатление, что LINQ предназначен для ситуаций, в которых структура БД выполнена из камня, и что у меня не может быть двух определений таблиц LINQ, имеющих одинаковое имя, и просто или легко переключаться между ними (или вообще делать это).

В этом случае, должен ли я иметь (по крайней мере) отдельный полный Linq.DataContext для каждой версии БД? Или я что-то здесь неправильно понял?

1 Ответ

0 голосов
/ 07 апреля 2011

Вы можете сделать это, используя отдельные отображения. В этом случае вам придется вручную кодировать свои сопоставления в соответствии с сопоставлением на основе атрибутов, которое разработчик LINQ или SqlMetal делает для вас. Я никогда этого не делал, но думаю, что это может сработать. Я просто погуглил для «сопоставления POCO Linq to Sql» и обнаружил следующее: Достижение POCO в Linq to SQL . Этот человек загружает свое отображение из XML-файла во время выполнения. Вы можете условно загрузить один из двух разных файлов сопоставления.

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