特定の列名について、SUM を計算したいと考えています。リフレクションの使用方法を見つけたばかりですが、正しい方法で行っているかどうかわかりません..
string columnName = "days";
ObjectQuery<TableX> objectSet = context.CreateObjectSet<TableX>();
Func<TDomainEntity, object> fieldGetter;
var type = typeof(TDomainEntity);
var prop = type.GetProperty(columnName);
fieldGetter = e => prop.GetValue(e,null);
//this wouldn't work because the fieldGetter should be Func<TDomainEntity, decimal> and not object
var total = objectSet.Sum(fieldGetter);
fieldgetter は decimal 型である必要があるため、これを機能させることはできませんが、type.GetProperty が失敗し、キャストが機能しませんでした。それで、私は何が欠けていますか、それとも別の方法がありますか? columnname に対して巨大な switch ステートメントを作成することもできますが、それは良くありません :)