entity frameworkV4:“仅代码”性能注意事项

我即将开始研究一个新项目,我想知道“仅限代码”是否是正确的方法。 我们也在考虑设计师采用的另一种模型优先方法,但宁愿在EF设计师之外设计我的领域模型。

我们的域名可能包含100多个实体。 我已经读过大量的实体可以在某种程度上减慢EF(即:创建上下文并首先调用SaveChanges)。

由于没有EDMX文件来存储元数据,这种方法可能会更慢吗? 我在网上搜索过,但一直无法找到相关信息。

我知道这仍然只是在CTP中并且缺少许多function,但我只是在寻找输入/指导。

作为.NET 4,包括EF4在内的Beta 1目前你不会得到任何有用的一般答案。 对于您的具体情况,为什么不测试。

使用一个实体创建实体模型并运行一些性能测试。 然后展开模型以获得更多实体并重新运行测试。 如果模型中的实体数量存在性能影响,您应该会看到性能差异。

请记住打折负载效应,除非您只对启动,执行单个操作然后关闭的应用程序感兴趣。

内部仅代码缓存元数据,因此,一旦创建了第一个上下文,您就会发现Code-Only和EDMX方法之间的性能差别很小。

你是对的,大量实体可以减慢EF。

通常建议使用预生成视图来帮助大型模型的性能。 但该function依赖于拥有EDMX文件,因此毫不奇怪它不适用于Code-Only。

但是,如果您发现需要预编译视图,则可以始终使用CodeOnly的ToEdmx()function从CodeOnly世界转移到标准EDMX世界。 当然,在EDMX世界中,您可以预编译您的视图。

然而,这不一定是我会采取的方法。

我认为具有100个或更多IQueryable属性的上下文无论如何从可用性的角度来看都不太理想。

因此,我可能会利用Code-Only的function轻松创建较小的目标子域,以最大限度地减少应用程序部分模型的有效大小,而不是从仅限代码转移到预生成视图。继续努力。

结果将是一些快速,易于使用的ObjectContexts,针对当前的任务集。

哪个恕我直言更受欢迎。

希望这可以帮助

亚历克斯

  • entity framework应用程序的性能注意事项
  • 探索ADO.NETentity framework的性能 – 第1部分
  • 探索ADO.NETentity framework的性能 – 第2部分