2011-01-26 49 views
1

我们有一个项目,我们使用实体框架4.我测试了预生成的视图。但我们看不到任何性能差异。例如:我们有一个约20列的交易表。预生成视图有助于我第一次运行这样的查询:实体框架4:预生成视图在哪些场景中提升性能?

事务处理= repo.Single(t => t.TransactionId == 22857);

更普遍的是,在“where”语句不同的情况下,pregenerated views增加了性能吗?

另一个奇怪的是,如果我在调试中运行,在autogenerated设置断点... Views.cs类,代码永远不会进入自动生成... Views.cs类。

回答

1

预生成的视图不会帮助您的自定义查询。 A CompiledQuery将帮助这一点,但。

它们对用例如myEntity.SomeAssociation.Load()生成的查询有帮助。或延迟加载。或者无限制选择全部。

它只能帮助上下文中的第一次执行,但它可以是一个显着的改进。

+0

静态只读Func键> s_compiledQuery2 = CompiledQuery.Compile >((CTX,MYID)=>从交易中ctx.Transaction.Include(“Debtor.Creditor.Identity “).Include(”Debtor.Identity.DefaultPostAddress“)where transaction.TransactionId == myId && transaction.IsCustomerTransaction && transaction.IsPosted select transaction);预编译时,该查询实际上是SLOWER。也许由于包括?但如何做到这一点,包括预编译有效? – 2011-02-02 09:58:14