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>();