存储过程执行的通用包装器

时间:2013-08-12 14:29:37

标签: c# entity-framework entity-framework-5

如何一般执行存储过程?我试过了:

_context.Set<TEntity>();

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

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

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

我是否需要代表或在某处获得支持?

要清楚,我希望创造类似......的东西。

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

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

1 个答案:

答案 0 :(得分:0)

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

代码

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