EF Code First CTP5:使用带存储过程参数的DbContext.Database.SqlQuery
问题:
开发人员尝试使用带存储过程的DbContext.Database.SqlQuery方法时,在提供参数方面面临挑战。当使用SqlParameter对象时,会抛出SqlException异常,指示参数未按预期提供。
解答:
为了成功地将DbContext.Database.SqlQuery方法与需要参数的存储过程一起使用,应采用以下方法:
解决方案:
不要直接将SqlParameter对象作为参数传递,而是修改SQL查询字符串以包含以“@”符号开头的参数名称。然后,为每个所需参数创建和分配SqlParameter实例,并将它们作为附加参数提供。
代码示例:
以下代码片段演示了正确的用法:
<code class="language-c#">context.Database.SqlQuery<我的实体类型>( "mySpName @param1, @param2, @param3", new SqlParameter("param1", param1), new SqlParameter("param2", param2), new SqlParameter("param3", param3) );</code>
此更新后的语法应解决SqlException问题,并允许您使用DbContext.Database.SqlQuery方法从存储过程检索所需的结果。
以上是如何正确使用 DbContext.Database.SqlQuery 与存储过程参数?的详细内容。更多信息请关注PHP中文网其他相关文章!