Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
.net 关于用实体框架替换企业库数据访问块的建议_.net_Entity Framework_Enterprise Library_Data Access Layer - Fatal编程技术网

.net 关于用实体框架替换企业库数据访问块的建议

.net 关于用实体框架替换企业库数据访问块的建议,.net,entity-framework,enterprise-library,data-access-layer,.net,Entity Framework,Enterprise Library,Data Access Layer,几年前,我们开发了一个大型ASP.Net应用程序(C#/.Net 3.5),它必须是非依赖的“数据库引擎”(这意味着该应用程序可以使用SQL Server、Oracle、MySQL…作为数据库引擎)。为此,我们使用了企业库数据访问块4.1 但现在,由于我们正处于“性能/可伸缩性改进”阶段,我们正在考虑技术升级或重新设计我们的应用程序基础 所以,问题是:转向实体框架有什么好处吗?EF是否将保留我们的非依赖“数据库引擎”标准?或者我们应该保留EntLib DAAB实现,但升级到最新版本(5.0) 感

几年前,我们开发了一个大型ASP.Net应用程序(C#/.Net 3.5),它必须是非依赖的“数据库引擎”(这意味着该应用程序可以使用SQL Server、Oracle、MySQL…作为数据库引擎)。为此,我们使用了企业库数据访问块4.1

但现在,由于我们正处于“性能/可伸缩性改进”阶段,我们正在考虑技术升级或重新设计我们的应用程序基础

所以,问题是:转向实体框架有什么好处吗?EF是否将保留我们的非依赖“数据库引擎”标准?或者我们应该保留EntLib DAAB实现,但升级到最新版本(5.0)


感谢有许多针对Oracle(,)和MySQL(,)的EF提供程序,Microsoft为SQL Server提供了实体框架提供程序,因此数据库独立性应该没有任何问题。

它们之间的最大问题不是数据库独立性,而是使用模式根本不同。数据访问块(DAAB)主要是围绕ADO.NET的方便包装器。它使调用存储过程变得更容易/不那么烦人,但您仍然在处理数据集或数据读取器。它实际上并没有改变您与数据库交互的方式,只是让它不那么烦人

另一方面,实体框架是关于数据建模和对象关系映射的。它比DAAB工作在更高的水平上;您可以根据对象编写代码,而不是数据集或数据读取器。它自动化了数据库中对象的“物化”,因此您无需编写代码,维护它们之间的关系,等等。这是一种功能更全面、但完全不同的处理数据库的方法

<>你需要考虑一下,如果你要先移动到ORM风格的数据访问。从那里,您可以决定EF或.NET空间中的许多其他ORM之一是否最适合您的需要

EF有很多供应商(见Devart的答案列表),但它们都是外部/额外成本。框中唯一一个用于Sql Server。尽管我要补充一点,DAAB实际上并没有完全涵盖“数据库独立性”这一点——如果您的DAAB调用中有任何实际的SQL,它对您解决SQL方言的差异没有帮助。英孚会的

迁移到实体框架有什么好处吗

通常,完成数据访问工作的速度更快。Linq语法很棒,可以查询sql

EF是否将保留我们的非依赖“数据库引擎”标准

没有支持也不行。尽管我没有遇到过任何开发人员,他们实际上使用了一个运行正常的应用程序,并将数据库技术与sql进行了交换

或者我们应该保留EntLib DAAB实现,但升级到 最新版本(5.0)


达布太棒了!!我为它写了一个代码。。另外,在为关系模式非常差的大型数据库实现EF后,我发现EF“向导”需要很长时间才能更新,对于110个sql表(大约)需要3分钟。太慢了,我回到达布。。。然而,我要说的是,前进的道路是艰难的。我只是尝试在存储过程中使用它,最好不要跟踪。EF需要注意的另一件事是当两个人分别更新实体时合并冲突。这可能会让人困惑。

如果企业库数据访问块对您非常有效,为什么还要麻烦更改呢。MS和community中的大多数实体框架示例都是基于SQL server的,我不确定其他框架有多强大。我很感谢您的回答,但来自常见问题解答:。