.net – 实体框架4:使用自我跟踪实体的过滤器进行预先加载(包括
我有一个解决方案,我使用RTM模板创建自我跟踪实体.我已经拆分了两个项目之间的实体和上下文,以便我可以重用类型定义,因为我计划通过WCF运行客户端/服务器.
我的一个服务方法需要返回带有“ProductSku”子对象的“Product”对象图,而这些对象又具有“ProductPrice”的子对象.选择标准将位于“Product”对象的“Name”属性和“ProductPriceObject”的“FinancialPeriodID”属性中.目前,我没有在搜索中包含该名称,但我在恢复图表方面遇到了问题. 如果我只是执行以下查询(请注意,此语法取自LinqPad而不是实际的应用程序代码)… from product in Products.Include("Skus.PriceHistory") select product …然后我能够检索我需要的项目的完整对象图,当然此时没有过滤器. 如果相反,我引入过滤器如下… from product in Products.Include("Skus.PriceHistory") join sku in ProductSkus on product.ID equals sku.ProductID join price in ProductPrices on sku.ID equals price.ProductSkuID where price.FinancialPeriodID == 244 select product …我期待得到的是“Product”对象,子“ProductSku”对象(位于“Product”的“Skus”集合中)及其“ProductPrice”对象(位于“ PriceHistory“收集”ProductSku“) – 但我只收回”Product“对象,”Skus“收藏是空的. 我也尝试将查询编码为…… from product in Products.Include("Skus.PriceHistory") from sku in product.Skus from price in sku.PriceHistory where price.FinancialPeriodID == 244 select product ……但这也没有区别. 显然,我必须做错事.任何人都可以了解那些事物是什么,因为我已经在这里玩了几个小时现在绕圈子! 解决方法也许投影可以做到这一点?看看Linq filter collection with EF (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |