表设计器(实体框架)过于耗费资源
本文关键字:于耗费 资源 框架 实体 | 更新日期: 2023-09-27 18:27:40
我正在处理一个使用.NET MVC 3和EF 4的项目。这个网站正在发展,有很多桌子。因此,实体框架的表设计器使用了太多的CPU来打开和添加新表。我有什么选择?我能做什么?
对于较大的模型,我认为设计者的方法不太可取。如果可以的话,可以考虑重构(一次咬一口?)为代码优先的方法;这将允许您继续使用当前的技术。我有一个大约有650个实体的项目,运行得很好,但我无法想象加载一个大约650个实体(也就是说,不拉头发)的.edmx设计师。
总而言之,"重"的不是EF,而是设计师。
从Visual Studio 2012开始,您现在可以将实体模型拆分为多个图。这将大大降低图表的复杂性。
参见
- http://msdn.microsoft.com/en-us/magazine/jj721589.aspx
- http://msdn.microsoft.com/en-us/data/jj519700.aspx
如果数据库操作通常较大,则可以考虑不使用EF,而是使用原始ADO.NET。EF归根结底是低级别的ADO.NET,但立即使用ADO.NET将提高性能。
从长远来看,转向代码优先的体系结构肯定是需要考虑的。在短期内,您还可以将模型分解为多个设计上下文。您可以通过识别应用程序中只使用表子集的区域来启动此操作。然后创建一个单独的数据上下文,该上下文只包括这些表。您可以在处理此问题时保留现有的综合上下文,以避免破坏遗留代码。您可以添加任意多的数据上下文,但我会在一个单独的文件夹中创建每个数据上下文(因此也会创建一个独立的命名空间),这样您就不必担心名称冲突。