gpt4 book ai didi

c# - 在 .NET 中具有单独 DataAccess 层的分层设计中,应该在哪里管理连接字符串?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:32 25 4
gpt4 key购买 nike

这里有一个长期运行的习惯,即连接字符串存在于 web.config 中,Sql Connection 对象在使用该连接字符串的 block 中实例化并传递给 DataObjects 构造函数(通过 CreateInstance 方法作为构造函数是私有(private)的)。像这样:

using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
DataObject foo = DataObject.CreateInstance(conn);
foo.someProperty = "some value";
foo.Insert();
}

这一切都让我闻起来……我不知道。 DataLayer 类库不应该负责 Connection 对象和 Connection 字符串吗?如果知道其他人在做什么或关于此类设计决策的任何优秀在线文章,我将不胜感激。

考虑到我们从事的项目始终是 Sql Server 后端,而且这种情况极不可能发生变化。所以工厂和提供者模式不是我所追求的。它更多地是关于责任在哪里以及应该在何处管理数据层操作的配置设置。

最佳答案

我喜欢在我的数据访问层中编写类代码,以便它们有一个构造函数将 IDbConnection 作为参数,另一个构造函数将(连接)字符串作为参数。

这样调用代码可以构建自己的 SqlConnection 并将其传入(便于集成测试),模拟 IDbConnection 并将其传入(便于单元测试)或从配置文件(例如 web .config) 并将其传入。

关于c# - 在 .NET 中具有单独 DataAccess 层的分层设计中,应该在哪里管理连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com