私はオブジェクトマッピングで自分自身を繰り返さないようにいくつかのメソッドをリファクタリングしようとしています。機能はこのSO questionに配置されています。同様のlinq2sqlで生成された結果を単一のオブジェクトにマップするにはどうすればよいですか?
私は4つのストアドプロシージャのうちの1つを呼び出し、同じフィールドで結果を返すジェネリックメソッドを持ち、異なるデータサブセットのみを返します。 linq2sqlは、ストアドプロシージャごとに異なるResultオブジェクトを生成します。
結果をサーバーオブジェクトに一般的にマップする方法はありますか?反射が必要ですか?
private static List<DistroHeader> getHeaders<T>(Func<IEnumerable<T>> getHeaders)
{
List<MyObj> myObj = new List<MyObj>();
var result = from a in getMyObjData()
select a;
foreach (var row in result)
{
myObj.Add(new MyObj()
{
Id = row.id,
Description = row.descr,
// ...etc
// These fields are shared across the result types...
// is there a way to make the compiler recognize that?
});
}
}
コンパイル時に型を知らずにこれを行うのですか? – IronicMuffin