EF:如何减少第一个DataContext初始化时间

时间:2011-03-19 15:38:06

标签: .net optimization entity-framework-4

我为具有100多个表的数据库使用自动生成的实体框架数据模型。虽然我只使用了5个表,但我选择要映射到c#类的所有表。

每次启动在FormLoad事件中创建DataContext实例的dekstop应用程序时,内部EF初始化需要3-4秒。此启动时间很大程度上取决于自动生成的类的数量。当我决定仅为5个表生成映射时 - 启动时间急剧下降。

我想知道幕后发生了什么,我是否可以更改标准行为,保留程序中所有未使用的表映射?我不想关心我需要映射哪些表。我想EF做了一些反射工作,可能是以懒惰的方式或某种方式完成的吗?

提前谢谢!

1 个答案:

答案 0 :(得分:3)

我建议您阅读这两篇文章Part 1Part 2。它们解释了启动应用程序时会发生什么,以及如何通过为实体框架预生成视图来减少启动时间。无论如何,包括你不需要的表是糟糕的方法,没有什么会减少你的启动时间,只需从实体模型中删除它们。