c# - 如何将 DbContext.Database.SqlQuery<TElement>(sql, params) 与存储过程一起使用? EF 代码优先 CTP5

标签 c# sql ado.net linq-to-entities entity-framework-ctp5

我有一个包含三个参数的存储过程,我一直在尝试使用以下方法返回结果:

context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);

起初我尝试使用 SqlParameter 对象作为参数,但这没有用并抛出一个 SqlException 并显示以下消息:

Procedure or function 'mySpName' expects parameter '@param1', which was not supplied.

所以我的问题是如何将此方法用于需要参数的存储过程?

谢谢。

最佳答案

您应该按以下方式提供 SqlParameter 实例:

context.Database.SqlQuery<myEntityType>(
    "mySpName @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);

关于c# - 如何将 DbContext.Database.SqlQuery<TElement>(sql, params) 与存储过程一起使用? EF 代码优先 CTP5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4873607/

相关文章:

c# - ObservableCollection 可视化工具 - 这样的东西存在吗?

c# - 将 IList<T1> 转换为 ILIst<T2>

html - 如何通过查询去除重复项?

.net - Entity Framework 5.0 基准测试

ado.net - 不能在引用类型上使用 'new';使用 'gcnew' 代替?在VS 2005中

c# - 从列 = 任何值的表中选择

c# - 转换 base64 字符串时出错

c# - 使用 C# 的嵌入式 FTP 服务器?

c# - 如何使用 LINQ to SQL 和 C# 进行正确的连接?

sql - 如何匹配复合类型数组中的元素?