Подтвердить что ты не робот

Добавить столбец в базу данных - как обновить файл dbml?

Есть ли способ обновить dbml файл или мне нужно его удалить и создать совершенно новый?

4b9b3361

Ответ 1

Насколько я знаю, в дизайнере нет встроенных функций для обновления таблицы с изменениями в базе данных.

Существуют сторонние инструменты (http://www.huagati.com/dbmltools/), которые предлагают такую ​​функциональность.

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

Ответ 2

Я слышал о одном странном трюке, где вы создаете новый объект для вашей измененной таблицы, а затем перетаскиваете/вырезаете новое свойство из нового объекта в свой старый. Никогда не пробовал, однако.

Ответ 3

Нет механизма автоматического обновления DBML или указания DBML для повторной проверки базы данных.

Я считаю, что самый простой способ - открыть файл dbml в дизайнере, удалить таблицу и затем снова добавить ее на поверхность дизайна. Хотя это может зависеть от сложности базы данных, т.е. Вы можете потерять определенную информацию.

Я сначала делал резервную копию файла dbml перед попыткой:)

Ответ 4

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

Лучший способ для меня:

Добавить ту же таблицу в dbml Открыть dbml с редактированием xml (правый щелчок → открыть с) Скопируйте столбец XML-столбца из таблицы, которую вы только что добавили, и вставьте в столбец таблицы нарушения. Сохранить Открытый Dbml регулярный путь Удалить добавленную таблицу

Ответ 5

Это обычно боль. Перекомпилируйте, выключите VS, откройте его и т.д. Он должен работать, но для меня всегда была задержка. Может быть проще вручную создать вашу модель с помощью LINQ, хотя это то, что я делаю. Таким образом, я получил полный контроль над этим.

Ответ 6

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

Еще один альтернативный вариант - использовать SqlMetal как часть процесса сборки для регенерации модели из базы данных.