3
我試圖傳遞一個Linq實體的屬性以供我的方法使用。我可以很容易地通過一個屬性來查詢在一個方法中傳遞一個Linq實體的屬性來設置和獲得結果
Func<Entities.MyEntity, ResultType> GetProperty = ent => ent.Property;
但是,這將返回ResultType並且不能用於設置屬性。
我想過使用反射來獲取propertyInfo,但這會讓我獲取屬性,但是我不能使用Linq語法來調用我的屬性。有沒有哪位古魯知道如何做到這一點?
我有一種預感,我可以通過構建表達式樹的一大塊,並應用它到查詢做...
我真的很希望做一些事情,如:
var value = myQueryEntity.CallMagicFunction(); //typesafe
myQueryEntity.CallMagicFunction() = value; //typesafe
所以這使用表達式樹和反射來訪問propertyinfo對象。我意識到我可以打電話給會員並從這裏設置會員。我會認爲,如果不採取getvalue/setvalue的話,會有一種類型安全的方式。或者我應該開始在python編程... – Spence 2010-02-01 07:21:01
@Spence - 當然;只需使用'obj.Id = ...';- p OK,更嚴重的是,您可以使用'Delegate'創建一個類型化委託 - 例如'Func'/'Action ' .CreateDelegate' - 你需要什麼?在4.0'動態'也可能是有趣的。 –
2010-02-01 13:40:57