假設我有兩張表,午餐和晚餐。我知道這兩個都包含DateTime屬性「時間」。表達式中的參考通用屬性
如果我有一個通用方法GetTime,當T是Lunch時,我怎麼能返回db.Lunch.Time,當T是Dinner時,我怎麼返回db.Dinner.Time?我試圖達到這一點,而不是單獨使用typeof來測試T,而是一般地測試。
僞代碼:
public T GetTime<T>(DateTime dt)
{
return MyDataContext.GetTable<T>().Where(entity => entity.Time == dt);
}
所以,當我打電話GETTIME <晚餐>它會自動查找在飯桌上與財產的時間等於我提供的參數DT所有晚餐實體。
問題是我不能指定entity.Time在我的表達式中,因爲T是一個泛型。我的問題是如何解決這個問題,以便我可以查找任何T(知道我的所有實體的時間屬性爲),而無需爲晚餐和午餐創建特定的方法。
這個問題就是財產相當混亂。代碼示例或一些僞代碼會有所幫助。 – 2009-06-01 20:25:54
添加了一些僞代碼,同時得到了很好的答案:) – Alex 2009-06-01 20:38:25