如何在存储过程中使用DbContext.Database.SqlQuery<TElement>(SQL,params)?EF规范第一条CTP 5我有一个具有三个参数的存储过程,我一直试图使用以下方法返回结果:context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);一开始我试着用SqlParameter对象,但这不起作用,并抛出了一个SqlException带着以下信息:过程或函数“mySpName”期望参数‘@parp 1’,该参数没有提供。那么,我的问题是,如何在需要参数的存储过程中使用此方法?谢谢。
3 回答
呼如林
TA贡献1798条经验 获得超3个赞
context.Database.SqlQuery<myEntityType>( "mySpName @param1, @param2, @param3", new SqlParameter("param1", param1), new SqlParameter("param2", param2), new SqlParameter("param3", param3));
智慧大石
TA贡献1946条经验 获得超3个赞
context.Database.SqlQuery<MyEntityType>("mySpName @param1 = {0}", param1)
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
此解决方案(仅适用于SQLServer 2005)
在proc名称之前的“EXEC” 副词之间的逗号 删除Param定义上的“@”(但不确定该位是必需的)。
:
context.Database.SqlQuery<EntityType>( "EXEC ProcName @param1, @param2", new SqlParameter("param1", param1), new SqlParameter("param2", param2));
添加回答
举报
0/150
提交
取消