繁体   English   中英

每次迭代的实体框架查询

[英]Entity framework query per iteration

当经常使用EntityFramework时,会发生此错误:开发人员忘记了Include(x => x.Author)上的Include(x => x.Author)类的调用方法,然后在foreach周期中他调用了blog.Author 结果,在每个循环迭代中,EF都会进行数据库查询,这非常慢。

如何在这样的代码中检测位置? 可能是静态代码分析器还是类似的东西?

在每个连续的集成版本中搜索“坏地方”都是理想的。 如果可能的话:)

恐怕我对您没有灵丹妙药,但是在一个无关紧要的代码库上遇到了类似的挫折,我以为我会投入2美分。 这是我缓解问题的方法。 这需要大量的工作,也许可以在任何新代码上完成,并且只要有错误修复就可以完成。

我建议您将实体分为通常需要一起使用的汇总。 然后,您可以创建将这些聚合作为一个组使用的存储库。 例如,您始终可以通过查询客户来获取订单,但是如果您需要该产品的订单项详细信息,则必须通过OrderLineItem上的ProductId来查询该产品。

基本思想是您始终使用聚合根。 这是领域驱动设计的概念,这是一个非常大的主题。 这是入门读物: https : //lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/

http://dddcommunity.org/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM