代码之家  ›  专栏  ›  技术社区  ›  synergetic

ORM与SQL XML,非常简单的中间层

  •  1
  • synergetic  · 技术社区  · 16 年前

    我知道这是一个相当激烈的问题。但不管怎样,我想听听斯塔克沃尔夫的意见。鉴于XML支持在SQL Server 2005/2008中相当好,而且不关心数据库的独立性,为什么需要linq-to-sql、entity framework、nhibernate等在高级用例中相当复杂和笨拙的特性,如果通过使用poco、xmlserializer和处理XML的存储过程,可以获得更少的comp雷克斯中层?有关参考,请参见链接: http://weblogs.asp.net/jezell/archive/2007/04/13/who-needs-orm-i-ve-got-sql-2005.aspx

    2 回复  |  直到 16 年前
        1
  •  2
  •   Marc Gravell    16 年前

    “不那么复杂的中产阶级”让我担心…ORM的要点是确保大部分复杂性与您的实际域相关(无论是订单处理、提要读取还是其他)。这种复杂性必须消失 在某处 . 以及 最后的 你想要复杂的地方在数据库里-你的 最少的 可扩展商品(通常可以扩展数据库服务器 向上的 (这很贵),当你扩展应用服务器时 外面的 (便宜得多)。

    可能存在使用文档数据库而不是关系数据库的情况,但RDBMS不会出现在任何地方。 一般来说 我建议:将数据库中的XML使用限制在合理的数量。它 可以 做一个非常有效的工具-但是要小心不要创建一个内部平台。关系数据库(由任何供应商提供)是 例外 在其工作中,具有复杂的索引、酸、参照完整性等。利用这种力量。

        2
  •  0
  •   Michael Maddox    16 年前

    数据库中的XML序列化和XML列可能很难使用,但我相信您可以使它工作。您仍然需要克服像循环引用这样的标准ORM挑战。对于XML数据库列,SQL查询可能非常笨拙。

    我认为在高级用例中不是复杂的ORM,而是在高级用例中复杂的对象关系不匹配。我不知道XML和存储产品如何真正以更好的方式处理这些高级用例。

    XML本质上不是关系型的或面向对象的,您正在为组合添加额外的不匹配。