【问题标题】:Which Data Access layer is the recommended today for ASP.net?今天为 ASP.net 推荐哪个数据访问层?
【发布时间】:2010-10-16 02:35:25
【问题描述】:

我目前正在建立一个小型网站,我会在其中写下出现的问题并给出答案,以供其他人查看。目前我使用的 DAL 很像 here 所描述的。现在我一直在研究其他模型,特别是使用 Linq2SQL 和 ADO.net Entries 框架的基于 linq 的模型。我意识到我正在以某种方式将数据访问移动到代码层,因为然后我会过滤掉例如带有 linq 查询的顶级列表。我开始这样做的原因是因为 DAL 并没有真正与数据库同步,并且当我更改数据库中的某些内容时,可空类型变得不可空。然后,如果我将表重新导入数据表,我的查询就会丢失。

我的简单问题是,如果您今天想要一个适用于 ASP.net 的良好 DAL,那会是什么?建议和经验非常受欢迎。

【问题讨论】:

    标签: asp.net ado.net data-access-layer data-access


    【解决方案1】:

    有很多选择,根据您的具体情况,每种选择都可能会更好。一些选项包括:

    • LINQ to SQL
    • ADO.NET 实体框架
    • NHibernate
    • 亚音速
    • 手动写一个:)

    我的默认选择是 LINQ to SQL。不过,这完全是个人喜好。许多人都是 NHibernate 的拥护者。

    【讨论】:

      【解决方案2】:

      我个人更喜欢 LINQ to SQLADO.NET Entity Framework。微软人员也在他们最新的项目中使用了这些技术(例如,看看 KOBE 项目)。因此,Microsoft 也推荐这两个。

      虽然.. 有时我使用来自Enterprise Library 的数据访问应用程序块和手动 DAL 编码,当我需要最大程度地控制它的功能和实现时。

      其他替代方案是:NHibernateSubSonic、不同的 ORM 解决方案,例如 LLBLGen Pro


      关于这个主题的好书:


      相关工具:

      • LINQPad 也是学习 LINQ 的好方法:它预装了本书 C# 3.0 in a Nutshell 中的 200 个示例。没有比这更好的方式来体验 LINQ 和函数式编程的酷炫了。

      【讨论】:

      • 我肯定会买一本关于 Linq to SQL 的书。我开始玩它,它看起来非常有能力,正如你所说,MS 自己使用它,但有人告诉我在代码中保留 db 逻辑是不好的,但也许这毕竟不是一个坏主意。感谢您的回答!
      • 我也认为将所有数据库逻辑保留在代码中并不是一个好主意。我通过映射将存储过程与 LINQ to SQL 和实体框架一起使用。
      【解决方案3】:

      我在当前项目中使用OPF3,主要是因为它对 Pervasive.SQL v9.5 有出色的支持。支持也很棒。

      【讨论】:

      • 是的! Chili.Opf3.Storages.Oracle.OracleStorageSystem.Data.OracleClient 的接口。
      猜你喜欢
      • 2011-01-31
      • 2010-11-14
      • 2020-02-05
      • 2013-06-21
      • 2011-12-10
      • 2011-02-14
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      相关资源
      最近更新 更多