これが可能かどうかはわかりません。仲間と一緒に書いているプログラムのために、ラムダ式について少し学ぼうとしています。そのため、彼は MS SQL サーバーと通信する Database クラスを持っています。クラスでいくつかのテストを行いたかったので、TextFixtureSetup でテーブル (現在は 2 つのテーブル) にデータを入力し、分解ですべてのデータを削除する単純なコンパクト データベースを作成しました。彼のデータベース クラスは、SQL 接続に次のようなものを使用します
protected void WithConnection(Action<SqlConnection> sqlBlock)
{
try
{
using (SqlConnection connection = new SqlConnection(this.ConnectionString))
{
connection.Open();
sqlBlock(connection);
}
}
catch (Exception ex)
{
Console.WriteLine(@"Exception during database connection: {0}", ex);
}
}
Jon Skeet がほぼ同じコードを使用して回答した投稿を見つけたと思います。https://stackoverflow.com/a/1063112/1329396
これはクールだと思いますが、私の模擬データベースは SQLCEReader を使用しています。少し調べてみたところ、彼らは共通のクラスを共有してSystem.Data.Common.DbDataReader
おり、それは 1 レベル上にすぎないことがわかりました。私はそれをあまりチェックしていませんがWithConnection
、SQLCeDataReader と彼の SQLDataReader を使用できるようにするプログラミング スタイルを使用するポリモーフィック スタイルの方法を使用できるかどうかを考えていました。これを行う方法はありますか