带有输出参数和插值参数的EF Core FromSql

时间:2018-11-14 21:14:56

标签: sql entity-framework-core

我正在尝试调用一个测试存储过程,该存储过程需要多个参数,其中一些是可选参数,并且使用EF Core的FromSql方法具有一个输出参数。

存储过程:

Array.prototype.includes

当我去调用过程时,我被迫使用字符串插值法以能够省略可选参数。在这里查看我的另一个问题:Optional Parameters with EF Core FromSql

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

此方法无效,并显示“'必须声明标量变量“ @totalRows”。“”

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

此方法无效,因为它说“必须将参数编号3和后续参数作为'@name = value'传递。使用'@name = value'形式后,所有后续参数都必须在形式为'@name = value'。”

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

此方法无效,因为它说“过程或函数'TestOutputParameters'需要参数'@totalRows',但未提供。”

0 个答案:

没有答案
相关问题