实体框架 CTP5 - 从存储过程读取多个记录集
在 EF4 中,这并不容易实现。您要么必须降级到经典的 ADO.NET (DataReader),要么使用 ObjectContext .翻译或使用EFExtensions项目。
这是否已在 EF CTP5 中现成实施?
如果没有,推荐的方法是什么?
我们是否必须将 DbContext
转换为 IObjectContextAdapter
并访问底层 ObjectContext
才能访问此方法?
有人可以给我指点一篇关于使用 EF CTP5 执行此操作的好文章吗?
In EF4, this was not easily possible. You either had to degrade to classic ADO.NET (DataReader), use ObjectContext.Translate or use the EFExtensions project.
Has this been implemented off the shelf in EF CTP5?
If not, what is the recommended way of doing this?
Do we have to cast the DbContext<T>
as an IObjectContextAdapter
and access the underlying ObjectContext
in order to get to this method?
Can someone point me to a good article on doing this with EF CTP5?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
所以我得到了这个工作,这就是我所拥有的:
本质上,它基本上就像经典的 ADO.NET。您阅读
DbReader
,前进到下一个结果集,等等。但至少我们有
Translate
方法,它似乎在结果集字段之间执行从左到右的操作和提供的实体。请注意该方法是内部方法。
我的存储库调用此方法,然后将 DTO水化 到我的域对象中。
我对它不是 100% 满意,原因有 3 个:
DbContext
转换为IObjectContextAdapter
。 IMO 方法Translate
应该位于DbContext
类上。希望这既能帮助别人,又能向 EF 团队传达信息。我们需要现成的 SPROCS 的多个结果支持。您可以将存储过程映射到复杂类型,那么为什么我们不能将存储过程映射到多个复杂类型?
So i got this working, here's what i have:
Essentially, it's basically like classic ADO.NET. You read the
DbReader
, advance to the next result set, etc.But at least we have the
Translate
method which seemingly does a left-to-right between the result set fields and the supplied entity.Note the method is internal.
My Repository calls this method, then hydrates the DTO into my domain objects.
I'm not 100% happy with it for 3 reasons:
DbContext
asIObjectContextAdapter
. The methodTranslate
should be onDbContext<T>
class IMO.Hope this both helps someone and sends out a message to the EF team. We need multiple result support for SPROCS off the shelf. You can map a stored proc to a complex type, so why can't we map a stored proc to multiple complex types?