2009-07-31 2 views

ответ

20

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

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

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

0

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

11

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

+0

Лучший ответ до сих пор. Работаю как шарм! – Tiborg

+1

Да, это сработало для меня. Для newbs, подобных мне: перетащите таблицу в левое окно, где находятся все таблицы. Это создает «TableName1». Щелкните правой кнопкой мыши на столбце, чтобы разрезать его, а затем щелкните правой кнопкой мыши на исходной таблице, чтобы вставить его. Выберите «TableName1» и нажмите «Удалить». – Chris

+0

Хм, у меня была одна проблема: иногда она создавала еще один файл designer.vb. Поэтому я скопировал содержимое 2-го конструктора.vb и вставил его в оригинал, а затем удалил вновь созданный. – Chris

1

Невозможно автоматически обновить DBML или сообщить DBML о перечитании базы данных.

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

Я бы резервную копию файла DBML первым, прежде чем пытаться :)

0

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

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

1

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

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

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

Смежные вопросы