gpt4 book ai didi

c# - 有没有一种简单的方法可以在我的连接上使用依赖注入(inject)?

转载 作者:IT王子 更新时间:2023-10-29 04:53:36 25 4
gpt4 key购买 nike

我正在寻找一种方法将我的连接注入(inject)我的存储库。我尝试使用 IDBConnection 注入(inject) SqlConnection,但是当 NInject 尝试停用连接时我遇到了一些问题,该事件从未被调用。而且我不知道如何将连接字符串注入(inject)我的存储库。

有人可以给我一个建议吗?

最佳答案

我使用 NInject 来执行我的项目的依赖注入(inject)。我通常以下面的配置结束:

简单的工厂接口(interface)

public interface IDbConnectionFactory
{
IDbConnection CreateConnection();
}

工厂实现

public class SqlConnectionFactory : IDbConnectionFactory
{
private readonly string _connectionString;

public SqlConnectionFactory(string connectionString)
{
_connectionString = connectionString;
}

public IDbConnection CreateConnection()
{
var conn = new SqlConnection(_connectionString);
conn.Open();
return conn;
}
}

N注入(inject)配置:

Bind<IDbConnectionFactory>()
.To<SqlConnectionFactory>()
.WithConstructorArgument("connectionString",
ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString);

存储库示例:

public class UserRepository : IUserRepository
{
private readonly IDbConnectionFactory _dbConnectionFactory;

public UserRepository(IDbConnectionFactory dbConnectionFactory)
{
_dbConnectionFactory = dbConnectionFactory;
}

public IEnumerable<User> List()
{
using (var dbConnection = _dbConnectionFactory.CreateConnection())
{
....
}
}
}

编辑:我总是让 ADO.NET 负责连接池。因此,每次我需要执行数据库操作时,我都会打开和关闭连接。

这种方法对我有用,而且非常简单,正如您在问题中提到的那样。

关于c# - 有没有一种简单的方法可以在我的连接上使用依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523166/

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