EF Core FromSql с выходными параметрами с интерполированными параметрами - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь вызвать тестовую хранимую процедуру, которая принимает несколько параметров, некоторые из которых являются необязательными, и имеет один выходной параметр, используя метод FromSql EF Core.

сохраненный процесс:

Create proc dbo.TestOutputParameters
@addressId int,
@city nvarchar(100) = null,
@totalRows int output

AS

BEGIN
select * from crm..address
where adressid = @addressid
and (@city is null or city = @city)
set @totalRows = 5

END

Когда я иду, чтобы вызвать процедуру, я вынужден использовать интерполяцию строк, чтобы иметь возможность пропустить необязательный параметр. Смотрите мой другой вопрос здесь: Необязательные параметры с EF Core FromSql

    var addresses = CRMContext.Address.
FromSql($"exec myDB.dbo.TestOutputParameters @addressId = {25}, @totalRows OUTPUT").ToList();

Этот метод не работает и говорит: «Необходимо объявить скалярную переменную« @totalRows ».» «1011 *

var addresses = CRMContext.Address.
    FromSql($"exec myDB.dbo.TestOutputParameters @addressId = {25}, @totalRows OUTPUT", {new SqlParameter("@totalRows", SqlDbType.Int){Direction = ParameterDirection.Ouput}}).ToList();

Этот метод не работает, так как в нем говорится "Должен передать параметр номер 3 и последующие параметры как" @name = значение ". После использования формы" @name = значение "все последующие параметры должны быть переданы в form '@name = value'. "

var addresses = CRMContext.Address.
        FromSql($"exec myDB.dbo.TestOutputParameters @addressId = {25}", {new SqlParameter("@totalRows", SqlDbType.Int){Direction = ParameterDirection.Ouput}}).ToList();

Этот метод не работает, так как он говорит: «Процедура или функция TestOutputParameters ожидают параметр« @totalRows », который не был предоставлен».

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