あいさつ、dbへのアクティブな接続が1つだけになるようにシングルトンを作成するのは良い考えかどうかを尋ねたいと思います。私がやりたいことは次のとおりです:1)私はwcfサービスを持っています2)wcfサービスはdbからデータを取得します3)私はdbへの接続が1つだけになるようにこのようなシングルトンを作成したいと思います:
private static PersistanceSingleton _Instance;
public static PersistanceSingleton Instance
{
get
{
if (_Instance == null)
{
_Instance = new PersistanceSingleton();
}
return _Instance;
}
}
私はこれが理想的なシングルトンではないことを知っていますが、私はこの投稿の目的のためにそれを書いただけです。ここにいくつかの永続リポジトリが必要であり、コンストラクタでそれらをインスタンス化します。サービスクラス内には、コンストラクター内に次のコードがあります
_DBPersistanceSingleton = PersistanceSingleton.Instance;
次に、何らかのリクエスト(GetUsersRequestなど)が来たら、次のようなことをしたいと思います。
_DBPersistanceSingleton.GetUsers()
dbの各呼び出しを実行する前に、SqlConnectionが開いているかどうかも確認します。これが良い習慣であるかどうか私に知らせてください。私がこのソリューションについて考える理由は、クライアントアプリケーションを介してそのサービスに接続する多数のユーザーのためです