ORM 框架与数据库中直接查询的比较[已关闭]

问题描述 投票:0回答:3

我想写一个仓储程序。

任何人都可以指导我使用数据库层框架吗?

我以前使用过实体框架,但不喜欢它,因为它会抛出许多未知错误。

有人建议 NHibernate 或任何其他框架吗?或者你认为如果我使用直接查询或存储过程,它会更可靠、更好吗?

c# database orm
3个回答
5
投票

我不认为 ORM 是解决此类问题的最佳选择。

ORM 中的“O”代表“对象”。您不希望仅仅为了将数据移入仓库而创建对象模型。

ORM更多的是为了开发人员的方便:让面向对象的程序员忘记中间层基于实例的对象和数据库端基于集合的关系之间的区别。 SQL由ORM工具生成。这可能不是您想要移动数据的方式。

我认为您真正需要深入研究的三个字母是 ETL:提取-传输-加载。这是用于将数据从事务数据存储移动到数据仓库的更典型方法。


1
投票

实体框架会抛出通常来自数据库的错误,例如约束等。但是,您也可以使用实体框架进行直接 SQL 和存储过程调用。

您还应该将标题更正为 ORM 而不是 OMR?


0
投票

我认为人们过度相信 ORM 框架。他们存在诸如性能缓慢之类的问题。建议使用 Linq-to-sql,将更高级的查询作为存储过程完成。它非常简单且稳定。 或者使用亚音速。事实上,如果您愿意,执行大量存储过程并没有什么问题。没有灵丹妙药——每种解决方案都有其优点和缺点。

© www.soinside.com 2019 - 2024. All rights reserved.