だから私は自分自身がベストプラクティスであることに苦労しています。C# をコーディングするのはこれが初めてで、何かをコーディングするのは 10 年ぶりです。私がphp / sqlプログラマーとして働いていたとき、私たちは通常、クエリごとに新しい接続を開くという考えに眉をひそめていましたが、今日Googleでこの質問を、特にC#とsqliteで調査すればするほど、多くの人がそうすることを推奨しているようです.正反対。
だから、私は、明らかにこれを目よりもずっと多くやっている人たちのために、この質問を出してくれることを望んでいました. 私のデータベースクラスの一般的なセットアップは次のとおりです。
class DatabaseController
{
static private SQLiteConnection _sqlconn;
static private string _uri;
public static SQLiteConnection Sqlconn
{
get { return DatabaseController._sqlconn; }
set { DatabaseController._sqlconn = value; }
}
public static string Uri
{
get { return DatabaseController._uri; }
set { DatabaseController._uri = value; }
}
}
2 番目のクラスは、実際のクエリの実行などを処理するメインのデータベース クラスです。私が DatabaseController クラスを持っている理由は、開いている接続ハンドルを静的メンバー _sqlconn に格納できるため、接続は一度しか開かれず、プログラムが多くのデータベースを作成できる場合でも、データベース オブジェクトは単純に同じハンドルを使用するためです。オブジェクト。
しかし、繰り返しになりますが、これは実際に必要ですか?オブジェクトが作成されるたびに、メインの Database クラス内で新しい接続を開くだけでよいのでしょうか? 私が見つけた別のサイトとスレッドがありました.NET Frameworkが行うことは、接続プールを維持していても. これは本当にそうで、デスクトップ アプリと Windows 8 アプリの両方に当てはまりますか?