テーブル値パラメーターを受け取るストアド プロシージャを呼び出しています。
このパラメーターを渡すための次のオプションを知っています: create DataTable
、DbDataReader
、またはIList<SqlDataRecord>
。
私は使用していますIList<SqlDataRecord>
(使用DataTable
は似ています)が、大量のボイラープレートコードを書く必要があります:コレクションを作成し、各列のタイプを設定し、行を追加し、各セルの値を設定します。
これはまさに、Entity Framework が自動化することになっているコードの種類だと思います。そのため、SQL TVP 型に一致する C# クラスを定義し、通常の EF 属性を追加し、それらのオブジェクトのコレクションを作成し、EF をコレクションの上に実装DbDataReader
しIList<SqlDataRecord>
たいと考えました。しかし、私はそれを行う方法を見つけることができません-たとえば、ありますがEntityDataReader
、それはSQLから読み取るためのものです-メモリ内コレクションの上に適切なインターフェースを実装する実装は見つかりません。
リフレクションを使用して自分で書き始める前に、何か提案はありますか?