Можно ли автоматически сгенерировать мой Linq2Sql DBML через скрипт? - PullRequest
4 голосов
/ 23 апреля 2009

Я использую Linq2Sql и устал от пересоздания dbml при каждом изменении базы данных. Можно ли написать сценарий создания моей модели, если я хочу ВСЕ таблицы и ВСЕ ПРОЦЕССЫ? В идеале это было бы частью процесса сборки или пользовательского инструмента.

Простая кнопка "обновить из схемы" тоже подойдет, но, насколько я могу судить, такой вещи не существует. В настоящее время единственный способ обновить мою модель - это удалить таблицы и процедуры, которые были изменены, и перетащить их из проводника сервера.

Может быть, я что-то упустил?

Ответы [ 3 ]

4 голосов
/ 23 апреля 2009

Полагаю, вы можете использовать инструмент SQLMetal

РЕДАКТИРОВАТЬ ОП: Я закончил тем, что написал командный файл для проверки кода, сгенерировал классы с этим, затем передал код. Затем я создал триггер уровня изменения схемы базы данных, чтобы запускать этот пакетный файл каждый раз, когда менялась схема. Итак, теперь, когда схема меняется, классы Linq создаются, регистрируются, затем CCNet создает DLL и распространяет ее. сладкий ......

0 голосов
/ 26 апреля 2014

SQLMetal

http://msdn.microsoft.com/en-us/library/bb386987(v=vs.110).aspx

Средство командной строки SqlMetal генерирует код и сопоставление для компонента LINQ to SQL .NET Framework. SqlMetal может выполнять несколько различных действий, включая следующие:

Из базы данных создайте исходный код и атрибуты сопоставления или файл сопоставления.

Из базы данных создайте промежуточный язык разметки базы данных (.dbml) файл для настройки.

Из файла .dbml создайте атрибуты кода и сопоставления или сопоставление файл.

Этот инструмент автоматически устанавливается вместе с Visual Studio.

SQLMetalPlus

Проект, в котором файл .dbml может быть автоматически создан в Visual Studio с помощью кнопки обновления.

http://www.codeproject.com/Articles/37198/SqlMetalPlus-A-VS-Add-in-to-Manage-Custom-Changes

SQLMetalPlus Разветвлено на Github

Включает готовые установщики.

https://github.com/thedemz/dotnet-sqlmetal-plus

0 голосов
/ 23 апреля 2009

Если деньги не являются объектом, лучше всего приобрести редакцию системы Visual Studio 2008 для моделирования данных, создать проект базы данных и использовать его для поддержки базы данных, модели данных и модели сущностей. Поддерживать синхронизацию базы данных и модели сущностей - это не ноль, но использование инструмента сравнения схем не так уж и далеко (и он определенно выполняет всю работу для вас).

ИМХО, циклическое моделирование и проектирование данных более чем оправдывают высокую стоимость покупки командной версии Visual Studio 2008 вместо профессиональной.

...