Linq to Sql Mapping - PullRequest
       19

Linq to Sql Mapping

1 голос
/ 16 декабря 2009

Когда я изменяю структуру таблицы в Sql Server, не будет ли она автоматически отражаться в конструкторе макетов "Dbml"? Каждый раз, когда мне приходится удалять таблицы в конструкторе макетов "dbml" и перетаскивать таблицу с сервера sql.

Ответы [ 3 ]

2 голосов
/ 16 декабря 2009

Было бы неплохо, если бы у вас была возможность «обновить», сохранив все ваши локальные настройки, но дизайнер, похоже, не работает таким образом. Однако вы можете просто сделать те же обновления (вручную) в конструкторе, которые вы внесли в таблицу, добавив / удалив столбцы из сгенерированного класса в конструкторе.

0 голосов
/ 20 декабря 2009

Существует несколько способов синхронизации модели L2S с базовой базой данных:

1) Удалите таблицы (таблицы) / классы, связанные с поверхностью конструктора, и перетащите их обратно из объекта «Проводник сервера».

... или ...

2) Обновите классы, задействованные вручную в конструкторе L2S.

... или ...

3) Используйте сторонние инструменты с возможностью обновления (одним из таких инструментов является моя надстройка: http://www.huagati.com/dbmltools/, также упоминаемая в выпуске журнала MSDN за декабрь 2009 года http://msdn.microsoft.com/en-us/magazine/ee819138.aspx)

... или ...

4) Восстановить весь файл DBML, используя конструктор или файл sqlmetal.exe.

0 голосов
/ 16 декабря 2009

На вашем месте я бы начал использовать SqlMetal . SqlMetal - это приложение командной строки, используемое для создания LINQ DataContexts. Он может генерировать dbml или просто набор классов для использования в вашем проекте (это довольно настраиваемо). Поэтому создайте пакетный файл, который вызывает SqlMetal, и запускайте его каждый раз, когда вы вносите изменения в базу данных, и ваш проект всегда будет обновляться с базой данных.

Если вы не хотите запускать командный файл каждый раз, когда обновляете базу данных, вы можете просто запускать его каждый раз, когда создаете приложение с шагом перед сборкой .

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