SQL в Visual Studio 2010 и LINQ - PullRequest
       19

SQL в Visual Studio 2010 и LINQ

0 голосов
/ 10 декабря 2011

Я работаю над проектом, который зависит от наличия нескольких таблиц, представлений и хранимых процедур.До сих пор я создавал все это в SQL Server Management Studio.

Теперь я хотел бы продолжить работу над ними внутри Visual Studio.Это обеспечит преимущество контроля версий (и, надеюсь, наряду с рядом других преимуществ).

Я добавил новый проект в свое решение и начал работу над одним из представлений.Когда я попытался построить решение, это не удалось, так как новый проект не был связан с сервером / базой данных: Ошибка 1 SQL03006: Представление: [dbo]. [Vw_Test2] имеет неразрешенную ссылку на объект [EV870_ACCT_MASTER].

Мне удалось преодолеть это путем создания дампа dbschema с помощью vsdbcmd.exe и добавления дампа dbschema в качестве ссылки на мой проект базы данных

Это правильный подход?

Теперь я могу видеть схему (таблицы, представления, sprocs и т. Д.) В представлении схемы (мне пришлось включить отображение «внешних элементов»), и сообщение об ошибке исчезло.Примечание: я должен был ссылаться как: [$ (SQLDatabase)]. [Dbo]. [EV870_ACCT_MASTER]

Теперь я хочу знать, как я могу работать с этими объектами, которые я написал в сценарии.Я не знаю, как использовать новые таблицы, представления, sprocs и т. Д. (Я хочу использовать LINQ).Должен ли я запустить сценарии в первую очередь?Как тогда, если они будут скриптами «CREATE OBJECT», они будут выполняться в будущем (предположительно, они потерпят неудачу, так как объект уже существует в базе данных).Будет ли мой проект / решение знать, какие объекты нуждаются в обновлении и обновлять их?

В конечном счете, я хочу продвинуться дальше - моя цель состоит в том, чтобы решение было переносимым, а сервер / база данных были конфигурируемыми.Тогда мои таблицы, представления и хранимые процедуры будут созданы или изменены, если они не существуют или устарели.Возможно ли это?

Когда я начинаю работать с представлениями и т. Д. С помощью LINQ, я хочу, чтобы ссылки на сервер / базу данных оставались динамическими?

Я знаю, что там довольно много вопросов, но яЯ надеюсь, что кто-то сможет указать мне правильное направление - похоже, в Интернете не так много полезной документации (или о которой я до сих пор сталкивался).

Спасибо

Lee

1 Ответ

0 голосов
/ 10 декабря 2011

Где я работаю (и последнее место, где я работал), мы распространяем сценарии sql для создания базы данных вместе с приложением. В sql хранится номер версии, и при запуске приложения оно проверяет, является ли его версия более новой, чем номер, хранящийся в базе данных. Если это так, то он знает, что может потребоваться запустить несколько новых сценариев sql на случай каких-либо изменений схемы. Когда это происходит, мы просто выполняем все сценарии, потому что они написаны таким образом, что их многократное выполнение не повредит ничему ... таким образом, нам не нужно беспокоиться о том, какие сценарии являются новыми. Просто проверьте номер версии и все.

Что касается работы с этим материалом в Visual Studio вместо Management studio, я не уверен, почему кто-то захочет это делать. В зависимости от того, что вы используете для управления исходным кодом, вы можете получить хуки для Management Studio, но даже если это не мешает вам сохранять ваши сценарии sql в системе контроля версий. И я бы не стал переключаться с работы с моими sql-файлами в студии управления на Visual Studio, чтобы в любой момент встроить контроль исходного кода.

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