簡體   English   中英

Ninject如何在長時間運行的進程中最好地處理Sql連接?

[英]How to best handle Sql connections in long running processes with Ninject?

我們具有一個Azure工作人員角色(與Windows服務基本相同),在該角色中,我們將Ninject用於IoC,並將IDbConnection注入到我們的工作人員中。 最佳做法是,您應該在不再使用連接時立即處置該連接,而應在可能有意義或可能沒有意義的工作人員/服務中使用。 那么,在這種情況下處理數據庫連接的好方法是什么?

我們的選項包括(也許也不受限制):

  • 使用ServiceLocator模式並在我們處理的每條消息上請求一個新的連接
  • 保持連接(即不執行任何操作)

我也不願意說老實話,我希望還有其他解決方案...

我將排除ServiceLocator(anti)模式。 我認為使用Provider<ISomething>的NInject概念將適合您的需求。 基本上,提供程序是一種工廠,可以為您返回可以使用的連接,也許在using范圍內。 如果您想更加獨立於“ IoC陷阱”,則可以使用例如這樣的IConnectionFactory

interface IConnectionFactory{
           IDbConnection Open();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM