存储过程执行的通用包装

本文关键字:包装 执行 存储过程 | 更新日期: 2023-09-27 18:27:16

如何通用地执行存储过程?我试过了:

_context.Set<TEntity>();

我想避免嵌入式SQL,例如:

context.Database.SqlQuery<TEntity>(storedProcedureName);

但是,因为存储过程是通过函数而不是类型访问的,所以这是不起作用的。我还尝试通过函数映射创建/访问。返回结果的复杂类型存在,但不能用于获取结果本身。

我需要代表还是有人支持我?

需要明确的是,我希望能创造出这样的东西。。。。

public IEnumerable<TEntityResult> ReadSpAll<TEntity,TEntityResult>(IEnumerable<SqlParameter> sqlParameters) 

其中TEntity是存储的proc,TEntityResult是复杂返回类型

存储过程执行的通用包装

请参阅"使用导入函数映射存储过程"@http://msdn.microsoft.com/en-us/data/gg699321.aspx

对于像这样的代码

var context = new AWEntities();
ObjectResult<OrderDetail> orderDetailEnumerable = context.GetDetailsForOrder(71796);
List<OrderDetail> details = orderDetailEnumerable.ToList();