【问题标题】:ASP.net c# database connectivity getting into a messASP.net c# 数据库连接变得一团糟
【发布时间】:2011-06-18 13:33:08
【问题描述】:

我刚刚开始在一个新网站上进行开发,并且正在尝试正确地进行开发,也就是说,使用 DAL 而不是我以前使用的代码查询。

我了解这一切的原理,但我发现这个 DAL 带有表适配器和向导,它们的工作量太大而无法真正使用。有没有人对我应该改用什么有任何建议,以及如何快速使用它的教程链接?

【问题讨论】:

  • 什么版本的.net?听说过 LINQ 吗?
  • 我听说过 linq 但没用过,不知道它是干什么用的。我想我正在使用 2.0

标签: c# asp.net data-access-layer tableadapter


【解决方案1】:

我在我的博客上发布了一个代码生成工具(包括源代码)。 Data Access Layer CodeGen 本质上,它将为您生成大部分 DAL 代码。那是 100% 的“获取”代码以及插入、更新、删除存储过程的命令参数和赋值等。

代码生成使用 ADO.NET Core(仅此而已)。您只需看一下代码,就可以了解应该如何编写代码(作为一种学习工具)。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    构建你自己的是有用的练习 - 它会让你了解所涉及的内容。

    作为第一步,为什么不结合 Codesmith 和一些用于执行 CRUD 操作的常见数据库例程来滚动您自己的实体和数据访问?如果您的应用规模不大,这可能就是您所需要的。

    继续前进,LINQ 可能会成为未来使用这些东西的方式,但当然是特定于语言的。

    【讨论】:

      【解决方案3】:

      我建议您考虑使用轻量级且易于使用的 ORM,例如 Linq to SQL。我工作的公司是一家 2.5B 美元的太阳能制造公司,我们使用 L2S 作为我们下一代制造应用程序的基础。它允许我们在 Linq 中执行所有查询(强类型查询 - 巨大的好处),并且非常易于使用。

      【讨论】:

      • 如果他运行的是 .NET 2.0,则不会。
      • 请注意,L2S 本质上是“冻结的”。长话短说,它和 Entity Framework 来自 Microsoft 内部的两个不同团队,一个团队同时拥有这两种技术,而 EF 是首选的 ORM / 数据访问技术,L2S AFAIK 预计不会接受进一步的工作。所以 L2S 目前可能还可以,但我猜很快就会被视为传统技术。
      • Tom,我建议无论你做什么,看看你是否可以在 .NET 3.5 或更好/最好的 4.0 上工作。 4.0 将为您提供更多选择(如 Entity Framework 4.0)以及让您探索 LINQ 和现代 3rd-pty ORM 等。我喜欢 Subsonic(Google/Bing it)的原型设计,它既精简又快速,您将编码几分钟内就能搞定。
      【解决方案4】:

      就像所有其他事情一样:保持简单。如果你想自己写一个 DAL,那么只写你需要执行数据库操作的代码。

      public class MyDal
      {
        private SqlConnection _connection;
        public MyDal() 
        {
          _connection = new SqlConnection("connection string here");
      } public DataSet GetSomeData() { // write the code that reads from the database and parses the data in a DataSet } }
      当然,如果您愿意,有许多好的解决方案可以让您不必编写自己的 DAL。就个人而言,我喜欢 Castle ActiveRecord,因为它就是这么简单。您只需编写数据对象并赋予它们一些属性,ActiveRecord 会负责所有数据库通信。

      如果您正在从事更大的项目,您可能会研究其他解决方案、ORM,例如 Microsoft Entity Framework (EF) 等。

      【讨论】:

        【解决方案5】:

        如果您可以选择,我建议您使用 .NET 4.0 并考虑使用 WebMatrix 构建您的网站查看 Rob Conery 的 Thoughts on WebMatrix 帖子,了解有关使用 WebMatix 和数据访问策略的更多详细信息它雇用的人。

        【讨论】:

          猜你喜欢
          • 2014-05-25
          • 2016-11-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-10
          • 1970-01-01
          • 2013-04-03
          相关资源
          最近更新 更多