Как заставить выполнение SQL запрашивать параметры запроса? - PullRequest
0 голосов
/ 13 марта 2019

Используя встроенный инструмент Visual Studios для подключения к БД для файла SQL, вы можете выполнять запросы к базе данных.

Я использую встроенные запросы в своих сборках C #, я разрабатываю эти запросы с параметрами запроса и использую Dapper для быстрого сопоставления этих запросов с объектами.

Это хорошо работает, и вы получаете intellisense при написании SQL, однако вы не можете выполнить эти файлы SQL, потому что параметры запроса не определены в необработанном запросе (они будут предоставлены Dapper), но это может показаться это может запросить параметры запроса.

Я не уверен, есть ли способ сделать это в Visual Studio или есть какие-то хитрости для этого.

Я могу поместить их в файл SQL для тестирования, но мне не очень нравится эта идея, потому что всегда есть шанс, что вы случайно оставите их в файле.

Так что обычно у меня есть файл sql, который выглядит следующим образом: -

SELECT * from Blah where Blah.Id = @Id

В случае выполнения будет сказано, что он не знает, что такое Id, и нет способа определить Id, кроме как поместить оператор DECLARE в SQL

Так есть ли способ заставить Visual Studio запрашивать параметры запроса? Или хитрость в указании параметров запроса без помещения их непосредственно в файл?

1 Ответ

0 голосов
/ 15 марта 2019

Я обошел эту проблему способом, который подходит для моей ситуации, но не будет работать в целом

Учитывая, что я встраиваю свой SQL в код как встроенный ресурс, когда я загружаю SQL, яможет опубликовать процесс SQL.Это означает, что в моих файлах SQL я могу делать

DECLARE @Id int = 123

-- QUERY
SELECT * from Blah where Blah.Id = @Id

, теперь я могу выполнить свой запрос в Visual Studio для своей базы данных с параметрами теста, а когда реальный код загружает запросы из встроенных ресурсов, он удаляет вседо комментария --QUERY.Он также выполняет двойную проверку, чтобы убедиться в отсутствии операторов DECLARE, поскольку я не склонен использовать их в моих sql-запросах с Dapper.

Это обеспечивает хороший рабочий процесс, поскольку вы можете довольно быстро создавать и тестировать свои запросы..

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