Как обновить файл Linq to SQL dbml?



Как обновить Linq для SQL .файл dbml?

535   7  

7 ответов:

есть три способа сохранить модель в синхронизации.

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

    A. обновите схему базы данных в Обозревателе баз данных (щелкните правой кнопкой мыши, обновить)
    B. сохраните конструктор после удаления таблиц
    c. сохраните снова после перетаскивания таблиц спина.

    Примечание хотя, если вы изменили какие - либо свойства (например, отключив дочернее свойство ассоциации), это, очевидно, потеряет эти изменения-вам придется сделать их снова.

  2. используйте SQLMetal для восстановления схемы из базы данных. Я видел несколько сообщений в блоге, которые показывают как написать это.

  3. внести изменения непосредственно в панели свойств DBML. Это работает для простых изменений, таких как разрешение нулей на поле.

конструктор DBML не установлен по умолчанию в Visual Studio 2015 или Visual Studio 2017. Вам нужно будет закрыть VS, запустить установщик VS и изменить свою установку. Элемент LINQ to SQL tools - это функция, которую вы должны установить.

обновить таблицы .dbml-диаграмма с, например, добавленными столбцами, сделайте это:

  1. обновите окно Проводника SQL Server.
  2. перетащите "новую" версию таблицы в поле .dbml-диаграмма (report1 на рисунке ниже).

report1 is the new version of the table

  1. отметьте добавленные столбцы в новой версии таблицы, нажмите Ctrl+C скопировать добавлены столбцы.

copy the added columns

  1. нажмите на "старую" версию таблицы и нажмите Ctrl+V чтобы вставить добавленные столбцы в уже существующую версию таблицы.

paste the added columns to the old version of the table

вы также можете проверить PLINQO набор шаблонов генерации кода, основанных на CodeSmith, которые позволяют вам делать много аккуратных вещей Для и с Linq-to-SQL:

  • создать один файл для каждого класса (вместо одного огромного файла)
  • обновлять модель по мере необходимости
  • многие другие функции

проверьте сайт PLINQO на http://www.plinqo.com и взгляните на вступление видео.

второй инструмент, который я знаю-это Huagati DBML / EDMX tools, которые позволяют обновлять файлы сопоставления DBML (Linq-to-SQL) и EDMX (Entity Framework) и многое другое (например, Соглашения об именах и т. д.).

Марк

мы используем пользовательский шаблон T4, который динамически запрашивает модель information_schema для каждой таблицы во всех наших.DBML файлы ,а затем перезаписывает части.DBML-файл со свежей информацией о схеме из базы данных. Я очень рекомендуем реализовать такое решение - это сэкономило мне кучу времени, и в отличие от удаления и повторного добавления таблиц в вашу модель вы можете сохранить свои ассоциации. С помощью этого решения вы получите ошибки времени компиляции, когда ваша схема изменения. Вы хотите, чтобы убедиться, что вы хоть и используете систему контроля версий, потому что сравниваете-это очень удобно. Это отличное решение, которое хорошо работает, если вы разрабатываете первый подход к схеме БД. Конечно, я не могу поделиться кодом моей компании, поэтому вы сами пишете это самостоятельно. Но если вы знаете некоторые Linq-to-XML и можете пойти в школу на этом проекте, вы можете добраться туда, где вы хотите быть.

Я бы рекомендовал использовать визуальный конструктор, встроенный в VS2008, так как обновление dbml также обновляет код, созданный для вас. Изменение dbml за пределами визуальный конструктор приведет в базовом коде из-за отсутствия синхронизации.

есть нюанс в обновлении таблиц, а затем обновление DBML... Отношения внешнего ключа не всегда сразу переносятся, если изменения вносятся в существующие таблицы. Работа вокруг состоит в том, чтобы сделать сборку проекта, а затем снова добавить таблицы. Я сообщил об этом MS и его исправили для VS2010.

DBML дисплей не показывает новые ограничения внешнего ключа


обратите внимание, что инструкции, приведенные в основном ответе, не ясны. Чтобы обновить таблицу

  1. откройте область конструктора dbml
  2. выберите Все таблицы с правой кнопкой мыши - > выберите Все или CTRLa
  3. CTRLx (вырезать)
  4. CTRLv (вставить)
  5. сохранить и перестроить решение.

в случае обновления хранимой процедуры, вы должны удалить его из.dbml-файл и снова вставьте его. Но если хранимая процедура имеет два пути (например: if something; display some columns; else display some other columns), убедитесь, что два пути имеют одинаковые псевдонимы столбцов!!! В противном случае будут существовать только первые столбцы пути.

Comments

    Ничего не найдено.