首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IEnumerable<> to ObjectSet<>,原因:包含

IEnumerable<> to ObjectSet<>,原因:包含
EN

Stack Overflow用户
提问于 2012-09-02 23:20:42
回答 2查看 725关注 0票数 1

我正在开发MVC3应用程序,使用实体框架4.1。我做了LINQ查询,并将其作为IEnumerable<T>返回。但是,在控制器中,我必须使用Include(other entity),就像在ObjectSet中一样,这样我就可以在视图中显示其他实体值(它与我正在查询的实体值相关联)。我尝试了从IEnumerable<T>ObjectSet<T>的显式转换,但它抛出了异常。有没有办法从IEnumerable获取ObjectSet,或者在IEnumerable中包含entity

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-02 23:42:05

如果您的上下文仍然有效(如果您还没有停止使用),并且如果您还没有执行过.ToList(),那么您应该能够转换为ObjectQuery<T>

更安全的做法是在IQueryable<T>上使用扩展方法,该方法检查queryable是否为ObjectQuery<T>,如果是,则强制转换为ObjectQuery<T>并返回结果。否则,.Include()将返回输入查询。

票数 2
EN

Stack Overflow用户

发布于 2012-09-02 23:33:14

一旦您将其转换为IEnumerable,它就会与数据源断开连接。

您应该在DAL仍然是IQueryable或IObjectQuery时将相关实体包括在DAL中,然后以IEnumerable形式返回完整的结果。

否则,您将在DB上进行额外的访问。

是的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12237138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档