entity-framework - EF4.1 代码优先 : Stored Procedure with output parameter

标签 entity-framework stored-procedures parameters ef-code-first

我首先使用实体​​框架 4.1 代码。我想调用一个具有输出参数的存储过程,并检索该输出参数的值以及强类型结果集。它是一个带有这样签名的搜索功能

public IEnumerable<MyType> Search(int maxRows, out int totalRows, string searchTerm) { ... }

我发现了很多关于“函数导入”的提示,但这与 Code First 不兼容。
我可以使用 Database.SqlQuery(...) 调用存储过程,但这不适用于输出参数。

我可以使用 EF4.1 Code First 解决这个问题吗?

最佳答案

SqlQuery使用输出参数,但您必须正确定义 SQL 查询和设置 SqlParameter s。尝试类似:

var outParam = new SqlParameter();
outParam.ParameterName = "TotalRows";
outParam.SqlDbType = SqlDbType.Int;
outParam.ParameterDirection = ParameterDirection.Output;

var data = dbContext.Database.SqlQuery<MyType>("sp_search @SearchTerm, @MaxRows, @TotalRows OUT", 
               new SqlParameter("SearchTerm", searchTerm), 
               new SqlParameter("MaxRows", maxRows),
               outParam);
var result = data.ToList();
totalRows = (int)outParam.Value;

关于entity-framework - EF4.1 代码优先 : Stored Procedure with output parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180310/

相关文章:

sql-server - 我可以将长时间运行的存储过程分布在多个 CPU 上吗?

sql-server - 试图了解存储过程的行为

powershell - 参数的变量类型问题? - 电源外壳

java - 传递 Supplier<Stream<T>> 参数时 Stream.generate 方法的行为

entity-framework - SaveChanges 实际上调用了 DetectChanges 吗?

c# - Entity Framework 6多对多代码首先急切加载给出递归结果

postgresql - 'PROCEDURE' postgresql 附近的语法不正确

postgresql - 我可以让 plpgsql 函数在不使用变量的情况下返回一个整数吗?

wpf - LINQ to Entities 异常(ElementAtOrDefault 和 CompareObjectEqual)

entity-framework - 如何清除 Entity Framework 对象中的验证结果