[英]How to best handle Sql connections in long running processes with Ninject?
我们具有一个Azure工作人员角色(与Windows服务基本相同),在该角色中,我们将Ninject用于IoC,并将IDbConnection注入到我们的工作人员中。 最佳做法是,您应该在不再使用连接时立即处置该连接,而应在可能有意义或可能没有意义的工作人员/服务中使用。 那么,在这种情况下处理数据库连接的好方法是什么?
我们的选项包括(也许也不受限制):
我也不愿意说老实话,我希望还有其他解决方案...
我将排除ServiceLocator(anti)模式。 我认为使用Provider<ISomething>
的NInject概念将适合您的需求。 基本上,提供程序是一种工厂,可以为您返回可以使用的连接,也许在using
范围内。 如果您想更加独立于“ IoC陷阱”,则可以使用例如这样的IConnectionFactory
:
interface IConnectionFactory{
IDbConnection Open();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.