3

これが可能かどうかはわかりません。仲間と一緒に書いているプログラムのために、ラムダ式について少し学ぼうとしています。そのため、彼は 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 を使用できるようにするプログラミング スタイルを使用するポリモーフィック スタイルの方法を使用できるかどうかを考えていました。これを行う方法はありますか

4

1 に答える 1