LINQ2SQL: Если я внесу изменения в БД, как отразить их в DBML? - PullRequest
3 голосов
/ 18 сентября 2009

Я использую LINQ2SQL в моем текущем проекте. У меня довольно много таблиц ~ 30. Когда я создаю свой файл DBML, я изменяю некоторые имена столбцов и т. Д. Для удобства чтения.

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

Ответы [ 4 ]

4 голосов
/ 18 сентября 2009

В стандартной комплектации Linq-to-SQL не имеет функции обновления - удивительно, но, к сожалению, верно.

Есть два инструмента, которые я знаю об этом:

  • PLINQO - это набор шаблонов генерации кода CodeSmith, которые обрабатывают генерацию DBML и предлагают множество дополнительных функций (например, генерирование одного файла для каждой единицы БД) - включая обновления!

  • Инструменты Huagati предлагают обновления и обязательные соглашения об именах для DBML и Entity Framework

Марк

2 голосов
/ 18 сентября 2009

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

Мой подход заключается в использовании функции drag-n-drop для создания исходного DBML-файла. Затем любые изменения, которые я делаю в моей БД, также затем вносятся вручную либо в конструкторе, либо в самом файле DBML (в виде XML). (Вы можете щелкнуть правой кнопкой мыши файл DBML, выбрать «Открыть с помощью» и выбрать редактор XML.) Иногда гораздо проще / быстрее работать с его XML, чем возиться в конструкторе.

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

Удачи!

0 голосов
/ 19 сентября 2009

Что касается бесплатных решений, есть пара тупых инструментов, которые в основном отвлекают вас от использования O / R Designer: SQLMetal и Шаблоны T4 Damien Guard .

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

Вопрос, который вы должны задать себе: я использую правильный ORM? LinqToSql имеет довольно много существенных недостатков, и обработка изменений базы данных является лишь одним из них.

Не используйте Visual Studio 2008 LinqToSql O / R Designer

Недостатки принятия Linq To Sql

0 голосов
/ 18 сентября 2009

Добро пожаловать в мир утомительного! Если я что-то пропустил, вы делаете это правильно.

SubSonic выглядит как интересная альтернатива и может похвастаться

Он также создаст вашу базу данных на лету, если вы захотите, изменяя схему по мере изменения вашего объекта.

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