【问题标题】:ASP.NET MVC + ORMASP.NET MVC + ORM
【发布时间】:2008-10-07 19:15:37
【问题描述】:

我正在启动一个使用 ASP.NET MVC 的项目,并已开始创建我的模型。由于我了解一些 Ruby On Rails,并希望尽可能使用类似于 Rails Active Record 的系统。

有没有人在 ASP.NET MVC 应用程序(或任何相关的应用程序)中使用过 Castle Projects Active Record 并有一些经验可以分享?

MVC 和 Castle Active Record 是正确的选择吗,还是建议我使用 LinqToSql。

请分享您可能获得的任何想法和经验。

编辑:澄清;我有很长的 ASP.NET 和 C# 背景,但看过一点 Rails,很喜欢你可以轻松地创建 ORM

【问题讨论】:

    标签: asp.net-mvc activerecord


    【解决方案1】:

    我在 ASP.NET MVC 中使用了 Castle Active Record。我非常鼓励这种模型,因为 ActiveRecord/NHibernate 比 LINQ to SQL 或实体框架成熟得多。

    我认为 ASP.NET MVC 有一个光明的未来,并且会在新项目中推荐它而不是 Monorail。然而,正如我所说,ActiveRecord(在我看来)是优于 LinqToSQL 的 ORM。

    【讨论】:

    • Mike,你是如何解决 ASP.NET MVC 需要强命名程序集来搭建脚手架的问题的?谢谢。
    【解决方案2】:

    来自 Rails 背景,Castle Project AR 会感觉更接近您的习惯,但 Linq to SQL 更好地与整个 Microsoft 生态系统集成,您可能会发现这值得付出额外的努力来学习它。

    【讨论】:

      【解决方案3】:

      Linq to SQL 有一些主要的缺失部分,尤其是多对多关系。如果您要走“纯”微软路线,请查看 .net 3.5 sp1 和 Linq to Entities,它使用新的 ADO.net 实体框架。

      【讨论】:

        【解决方案4】:

        我已将 Castle ActiveRecord 与 MonoRail 一起使用,它相当易于使用且直观,尽管您会遇到的不可避免的问题通常很难诊断。它的文档也不是最好的(与许多开源项目一样)。默认情况下,它在下面使用 NHibernate ORM,如果您特别在使用 ORM 框架之后,我相信已经做出了一些努力来支持 NHibernate 的 LINQ,但不知道它走了多远。

        我认为这也取决于应用程序的大小,如果它是一个不需要大量维护的快速项目,那么 ActiveRecord 提供的易用性可能会很方便,但是 LINQ 也看起来非常简单和整洁.如果它是一个更大的应用程序,我会考虑使用 NHibernate 滚动您自己的数据层,如果它特别是您想要的 ORM。

        【讨论】:

          【解决方案5】:

          您是否需要免费的 ORM(如啤酒)/开源?

          如果您不这样做,那么我强烈推荐 DevExpress 的 eXpress Persistent Objects

          如果不是,那么我认为 LINQ 不相似,我没有使用 Castle 的 ActiveRecord 但我想这与 RoR 最相似

          【讨论】:

            【解决方案6】:

            MVC 不知道您使用的是什么 ORM,或者背后是否有一些 ORM 工具。 Controller/Action 必须将对象引用发送给 View,这样对象就可以是简单的 int、字符串数组、DataSet、Linq 对象、ActiveRecord 对象等等,对于 View 来说,一些对象如何填充数据并不重要!

            【讨论】:

              【解决方案7】:

              首选 NHibernate 作为持久层。

              【讨论】:

                猜你喜欢
                • 2010-11-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-10-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多