Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表设计器(实体框架)资源过于密集_C#_.net_Asp.net Mvc 3_Entity Framework_Entity Framework 4 - Fatal编程技术网

C# 表设计器(实体框架)资源过于密集

C# 表设计器(实体框架)资源过于密集,c#,.net,asp.net-mvc-3,entity-framework,entity-framework-4,C#,.net,Asp.net Mvc 3,Entity Framework,Entity Framework 4,我正在做一个项目,我们正在使用.NETMVC3和EF4。该网站正在发展,有很多表格。因此,实体框架的表设计器占用了太多的CPU,无法打开和添加新表。我有什么选择?我能做什么? 如果数据库操作一般很大,可以考虑不使用EF,而使用原始ADO.NET来代替。EF归根结底是ADO.NET的低级版本,但立即使用ADO.NET将提高性能 对于较大的模型,我认为设计师的方法不太可取。如果可以,考虑一次一次的重构吗?采用代码优先的方法;这将允许您继续使用当前的技术。我有一个约650个实体的项目工作得非常好,但我

我正在做一个项目,我们正在使用.NETMVC3和EF4。该网站正在发展,有很多表格。因此,实体框架的表设计器占用了太多的CPU,无法打开和添加新表。我有什么选择?我能做什么?

如果数据库操作一般很大,可以考虑不使用EF,而使用原始ADO.NET来代替。EF归根结底是ADO.NET的低级版本,但立即使用ADO.NET将提高性能

对于较大的模型,我认为设计师的方法不太可取。如果可以,考虑一次一次的重构吗?采用代码优先的方法;这将允许您继续使用当前的技术。我有一个约650个实体的项目工作得非常好,但我无法想象在不拉扯头发的情况下加载一个约650个实体的.edmx设计器


总而言之,重要的不是EF,而是设计师。

从Visual Studio 2012开始,您现在可以将实体模型拆分为多个图表。这将大大降低图表的复杂性


移动到一个代码第一体系结构肯定是长期要考虑的事情。在短期内,您还可以将模型分解为多个设计上下文。首先,您可以确定应用程序中只使用表子集的区域。然后创建一个只包含这些表的单独数据上下文。在进行此工作时,可以保留现有的综合上下文,以避免破坏遗留代码。您可以添加任意数量的数据上下文,但我会在单独的文件夹中创建每个数据上下文,从而创建一个单独的命名空间,这样您就不必担心名称冲突。

您的意思是,Visual Studio中的实体模型设计器需要太多的CPU使用?这是关于EF 5还是EF 4的?你的标题是5,但是标签是4。不要使用设计器。无论如何,这是一个拐杖,IMO。从EF到ADO.NET的事务是复杂的?你是说转换-主要的缺点是你失去了EF提供的所有抽象,最终使用了一种过时的技术,为了干净地使用,需要自己实现存储库和工作单元——EF DbContext就是这样做的。这有点过激,不是吗?问题在于设计器不是EF本身。您首先使用EF代码?因为Entity Framework 4.1将其作为一个选项,是的!有很多工具可以将现有数据库反向工程为代码优先模型。这可能是你的简单出路:我认为这是个好主意,我会读到的!谢谢