Базовый LINQ to SQL Вопрос: Как обновить ссылки на классы таблиц? - PullRequest
1 голос
/ 20 июля 2010

Я новичок в LINQ.Я использую Visual Studio 2008 и создал файл "LINQ to SQL Classes" (.dbml) в моем проекте.Я добавил каждую из своих таблиц базы данных в представление конструктора, и все работает отлично.

Мой вопрос такой: когда в базу данных были внесены изменения в дизайн таблицы, т. Е. Добавлены поля, как вы обновляете классы, чтобы отразить изменения?Нужно ли удалять таблицу из конструкторского представления dbml и перетаскивать ее обратно на поверхность конструкторского представления при каждом изменении таблицы?Кажется, что должен быть лучший способ, или что классы таблиц должны динамически обновляться с добавлением / удалением новых полей.Классы таблиц, кажется, не замечают / обновляют / обновляют изменения таблицы самостоятельно.

Заранее благодарим за любой совет, который вы можете предложить!

Ответы [ 4 ]

1 голос
/ 20 июля 2010

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

Кроме того, существуют сторонние надстройки, которые предоставляют функциональные возможности синхронизации.Моя компания делает один из этих инструментов, вы можете узнать больше об этом, скачать и получить пробную лицензию на http://www.huagati.com/dbmltools/

1 голос
/ 20 июля 2010

Нет необходимости удалять и повторно добавлять таблицу. Вы можете вручную добавлять или удалять поля в каждой таблице в вашем dbml. Таблицы на диаграмме dbml можно щелкнуть правой кнопкой мыши. При добавлении нового поля вы можете использовать таблицу свойств для определения типа данных и сопоставления столбца с базой данных.

Если вы вносите существенные изменения, это может быть утомительно, а удаление и добавление таблиц обычно проще и быстрее. Но если вы сделаете какую-либо настройку, такую ​​как добавление отношений в dbml, которых нет в базе данных, то при удалении и чтении таблицы вам также потребуется воссоздать отношения.

0 голосов
/ 20 июля 2010

Я использую преобразование T4 для LINQ2SQL.

Это позволяет мне просто перетаскивать и заменять всю массивную и некрасивую схему БД на поверхности проектирования, когда происходят изменения.

0 голосов
/ 20 июля 2010

Да. Вы должны либо манипулировать XML-файлом .dbml, либо удалить таблицу и заново добавить.

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

PIA - занижение.

p.s. лучшего способа нет (что я знаю)

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