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

一般来说,开发类库和数据库层的最佳实践是什么?[闭门]

  •  5
  • Ahmed  · 技术社区  · 17 年前

    我将开发一个数据库层来公开一组功能,这些功能将提供对数据库的读写。

    1. 如何处理数据库异常?(即:超时异常)或让dll客户端处理它们

    2. dll不是线程安全的,所以我应该为每个dll实例使用单个连接吗?因为这样可以提高性能。

    3. 开发类库有什么一般规则吗?

    我使用的是C#vs2008和SQL2008

    2 回复  |  直到 9 年前
        1
  •  5
  •   Marc Gravell    17 年前

    1:由你决定;你真的不能对它们做任何事,所以我可能会让它们浮出水面,除非我 需要 对调用方隐藏它(用类似的、不太具体的异常替换)

    2:你应该尽可能保持“本地”和短期的联系;通常每个方法调用一个。大多数提供程序都有连接池,这意味着您将获得相同的基础连接(只要使用相同的连接字符串),而无需强调同步、重入等(它将根据需要分配更多连接)

    3:查看类似于存储库模式的模式;还可以看看ORM框架,如LINQ到SQL、实体框架、NHibernate等。

    Customer GetCustomer(int id) {
        using(var conn = CreateConnection()) {
            conn.Open();
            // etc
        }
    }
    
        2
  •  3
  •   Spence    17 年前

    我给你的唯一建议是,比我聪明得多的人以前就做过这件事,他们从陷阱中吸取了教训。也许您可以花时间阅读哪些框架可供您定制,而不是滚动您自己的代码?

    除此之外,我建议您认真考虑您的db层的消费者,确保他们不需要知道在您的层中到底发生了什么来决定该做什么。创建一个友好的、可重用的公共界面,这将对您大有帮助。

    我还建议您仔细研究Linq to SQL,因为使用它会使您的类库看起来完全不同,而不是使用ADO.net或普通ORM。