【问题标题】:Persistence in .net - ADO.NET Entity Framework.net 中的持久性 - ADO.NET 实体框架
【发布时间】:2012-11-18 16:49:40
【问题描述】:
我找不到明确的答案:
ADO.NET Entity Framework 是像 Hibernate for Java 这样的全功能持久性框架吗?
.net 中是否有任何(其他)持久性框架?我只找到了像 nHibernate 这样的开源框架,但如果 .net 中有内置的东西,我没有明确的答案。在 .net 中获得持久性的最佳实践是什么?
【问题讨论】:
标签:
entity-framework
ado.net
persistence
【解决方案1】:
当你谈论持久层时,通常是数据库或文件系统,当你谈论实体框架时,它被称为 ORM,是的,我认为在 .Net 环境中 NHibernate 和实体框架应该是最流行的两个ORM。
ORM 帮助您将数据视为域中的对象,而不是考虑表、字段和行,因此它抽象了持久性的技术方面,并在您编写软件时为您提供了一种更加模型驱动的方法。
我曾经读过很多关于域驱动设计作为架构指南的文章,但现在在堆栈溢出中,我收到了很多关于使用六边形架构的建议,所有这些模式和实践都可以帮助您构建更好的软件,而且我猜想我们永远不会停止学习。所以是的,考虑像工件这样的 ORM 来帮助您专注于代码的更重要方面,而不仅仅是制作表格和查询。希望对你有帮助,
【讨论】:
-
同意。补充:Linq-to-Sql 是一个快速掌握的工具,可以完成体面的数据访问工作。建模选项比 EF 和 Nhibernate 少,但当数据模型和类模型映射几乎 1:1 并且不太可能发展更复杂的场景时,这是一个可行的选择。