【问题标题】:entity framework 4 IObjectSet include实体框架 4 IObjectSet 包括
【发布时间】:2010-12-02 05:35:07
【问题描述】:

我首先使用的是 EF4 CPT4 代码,并且我已经设置了我的 ObjectContext 以返回 IObjectSet,这样我就可以模拟和测试我的 repos。但是,我现在注意到我无法像使用 ObjectSet 那样使用 .Include() 方法进行预加载。

有没有办法让它工作???

编辑: 我添加了这个扩展方法:

public static IQueryable<TSource> Include<TSource>(this IQueryable<TSource> source, string path)
{
    var objectQuery = source as ObjectQuery<TSource>;
    return objectQuery == null ? source : objectQuery.Include(path);
}

它确实添加了 Include() 方法,但是我现在收到此错误:

LINQ to Entities does not recognize the method 'System.Linq.IQueryable`1[PostHope.Core.DomainObjects.SiteAnnouncement] Include[SiteAnnouncement](System.Linq.IQueryable`1[PostHope.Core.DomainObjects.SiteAnnouncement], System.String)' method, and this method cannot be translated into a store expression. 

【问题讨论】:

标签: entity-framework-4


【解决方案1】:

EF 团队的回应:

这是 CTP4 的一个已知问题,Include 是 ObjectSet 上的一个实例方法,但是当您的集合类型为 IObjectSet 时,您实际上是在使用 CTP4 中包含的 IQueryable 上的扩展方法。此扩展方法不适用于已编译的查询,但我们将在下一个版本中尝试支持此功能。

~罗文

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    相关资源
    最近更新 更多