【问题标题】:ORM framework compare to direct query in database [closed]ORM框架与数据库中的直接查询比较[关闭]
【发布时间】:2011-08-15 09:13:05
【问题描述】:

我想写一个仓储程序。

谁能指导我使用数据库层框架。

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

是否有人建议使用 nhibernate 或任何其他框架,或者您认为如果我使用直接查询或存储过程,它更可靠更好?

【问题讨论】:

  • 首先学习使用 ORM。 “很多未知错误”不是实体框架问题,嘿是电脑前的人的问题。 ORM 工作得很好——尽管 EF 是一个有争议的平庸。但是除非你知道你在做什么...... ORM 不会神奇地解决问题。并且 ORM 不用于 DAL - 它们包含一个。它们是一个业务层工具——持久对象的运行时。

标签: c# database orm


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我认为对 ORM 框架有过分的信任。他们有诸如性能缓慢之类的问题。建议使用 Linq-to-sql 将更高级的查询作为存储过程完成。它非常简单和稳定。 或者使用亚音速。事实上,如果你愿意,做很多存储过程并没有错。没有灵丹妙药 - 每个解决方案都有其优点和缺点。

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 2015-06-05
        • 2020-03-09
        • 1970-01-01
        • 2011-07-03
        • 2021-12-18
        • 1970-01-01
        相关资源
        最近更新 更多