WCF 数据服务和 EF4 CTP5,如何为查询配置默认的急切加载模式?

Posted

技术标签:

【中文标题】WCF 数据服务和 EF4 CTP5,如何为查询配置默认的急切加载模式?【英文标题】:WCF Data services & EF4 CTP5, how to configure default eager loading schemas for queries? 【发布时间】:2011-01-15 16:01:18 【问题描述】:

项目: 通过 OData(Wcf 数据服务)公开由代码优先方法配置的实体框架 ObjectContext。

对于简单的查询和 CUD 操作,一切正常。 但是,我看不到如何配置默认模式加载(服务器端)。

IE:如果我的实体 Customer 具有地址集合或与名为 Manager 的实体的一对一关系,我如何配置我的 ObjectContext 以便对客户的每个查询都会自动加载所有地址和经理客户实体?

我知道在客户端,调用者可以使用query().Expand("path") 来预先加载数据。但是,我想在服务器端指定它,以便对客户实体的所有查询都会产生,因为它是默认配置的 .Include("Addresses").Include("Manager")

有什么想法吗?

我们能想到的唯一“黑客”是HTTPModule,它拦截GET 请求并将一些?expand=XXX 添加到URL。如果我们找不到更好的解决方案,这将是我最后的解决方案......

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您可以尝试使用查询拦截器。

http://msdn.microsoft.com/en-us/library/dd744837.aspx

【讨论】:

以上是关于WCF 数据服务和 EF4 CTP5,如何为查询配置默认的急切加载模式?的主要内容,如果未能解决你的问题,请参考以下文章

EF4 CTP5 Code First 方法忽略表属性

EF4 CTP5 POCO 中的软删除、导航属性

EF4 CTP5 - 映射没有对象引用的外键?

EF4 CTP5 代码优先实现中的实体拆分场景

如何为 Dummies 筛选 Azure 日志或 WCF 数据服务筛选器

如何为具有共享类型的多个 WCF 服务生成客户端代码