1
對於某個列名,我想計算SUM。我剛剛發現瞭如何使用反射,但不知道如果我做正確的方式..C#使用反射實體框架總和
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應該是十進制類型,但在中類型.GetProperty將失敗並且投射它不起作用。那麼我錯過了什麼,或者有另一種方式? 我能爲COLUMNNAME一個巨大的switch語句,但是這不是很好是吧:)
鑄造成十進制給出了一個例外:{「指定的轉換無效」} – RubenR
@RubenR則該屬性ISN」 t'小數' –
Omg就是這樣!謝謝! – RubenR