我需要有关使用 Entity Framwork 4.x 存储过程将数据返回到 POCO 对象的建议。我不想将数据从实体对象复制到 POCO 对象。我想执行一个存储过程并将数据直接加载到我的 POCO 类中。
有没有办法做到这一点?我是否需要像您在 Nhibernate 中使用的某种映射?如果是这样,这个映射可以是基于属性的吗?
编辑:使用下面贾斯汀的帮助,我发现执行此操作的方法是:
SqlParameter p1 = new SqlParameter("@p1", "xxxx");
SqlParameter p2 = new SqlParameter("@p2", "yyyy");
SqlParameter[] parameters = new SqlParameter[2];
parameters[0] = p1;
parameters[1] = p2;
returned = base.ExecuteStoreQuery<YourClass>("exec your_stored_proc_name @p1, @p2", parameters);
是的,您可以使用ExecuteStoreQuery 的通用版本一旦您进入ObjectContext:
var listOfType= ((IObjectContextAdapter)context).ObjectContext
.ExecuteStoreQuery<Type>("SPROCNAME");
这是MSDN示例代码(只需将TSQL更改为存储过程)
并且,这里展示了如何处理参数
EF 的新版本有SqlQuery and DbContext.Database 更容易获取 ObjectContext:
var listOfType = context.Database.SqlQuery<Type>("SPROCNAME");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)