Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数化查询无法识别EF5中的参数?_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 参数化查询无法识别EF5中的参数?

C# 参数化查询无法识别EF5中的参数?,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我正在尝试使用Database.SqlQuery从EF5执行一个存储过程。但第二个参数在这里无法识别 错误:“参数化查询“(@custNum nvarchar(7),@PrimaryDisc bigint,@SecondaryDisc bigint)”需要未提供的参数“@PrimaryDisc” 代码 var results=\u MiscContext.Database.SqlQuery( “exec sp_gettechnicaldispline@CustNum、@PrimaryDisc、@

我正在尝试使用
Database.SqlQuery
从EF5执行一个存储过程。但第二个参数在这里无法识别

错误:“参数化查询“(@custNum nvarchar(7),@PrimaryDisc bigint,@SecondaryDisc bigint)”需要未提供的参数“@PrimaryDisc”

代码

var results=\u MiscContext.Database.SqlQuery(
“exec sp_gettechnicaldispline@CustNum、@PrimaryDisc、@SecondaryDisc”,
新的SqlParameter(“custNum”,CustomerNum),
新的SqlParameter(“PrimaryDisc”,SqlDbType.BigInt,0),
新的SqlParameter(“SecondaryDisc”,SqlDbType.BigInt,0))
.ToList();

这里的问题是什么?

这篇文章对我很有用

var custNum=newsqlparameter{ParameterName=“custNum”,Value=CustomerNum};
var primaryDisc=newsqlparameter{ParameterName=“primaryDisc”,Value=0};
var secondaryDisc=newsqlparameter{ParameterName=“secondaryDisc”,Value=0};
var results=\u MiscContext.Database.SqlQuery(
“exec sp_gettechnicaldispline@CustNum,@PrimaryDisc,
@二次光盘“,
custNum,primaryDisc,secondaryDisc).ToList();
如果参数值(
CustomerNum
)为空,则该参数将不会序列化,并且会发生此错误


检查并添加您添加的每个参数的默认值(
'0'用于CustomerNum
),如果需要,检查
CustomerNum 0
是否为NULL。

在添加参数名时尝试
@
,例如:
新的SqlParameter(@custNum),CustomerNum
不起作用。通过添加
@
。是否会出现套管问题?查询本身使用
CustNum
,但参数名为
CustNum
。从未使用过biginteger类型,但我会尝试
new-SqlParameter(“@PrimaryDisc”,new-biginteger(0))
。是的,设置实际值应该可以修复它。
var results = _MiscContext.Database.SqlQuery<TempTechDisciplines>(
        "exec sp_getTechnicalDiscipline @CustNum, @PrimaryDisc, @SecondaryDisc", 
        new SqlParameter("custNum", CustomerNum), 
        new SqlParameter("PrimaryDisc",SqlDbType.BigInt, 0), 
        new SqlParameter("SecondaryDisc",SqlDbType.BigInt, 0))
        .ToList<TempTechDisciplines>();
var custNum = new SqlParameter {ParameterName = "CustNum", Value = CustomerNum};
var primaryDisc = new SqlParameter { ParameterName = "PrimaryDisc", Value = 0 };
var secondaryDisc = new SqlParameter { ParameterName = "SecondaryDisc", Value = 0 };

var results = _MiscContext.Database.SqlQuery<TempTechDisciplines>(
             "exec sp_getTechnicalDiscipline @CustNum, @PrimaryDisc,
              @SecondaryDisc",
              custNum,primaryDisc,secondaryDisc).ToList<TempTechDisciplines>();