4
我想使用通用存儲庫& memcached緩存EF4結果。這一切都很好,除了我需要一個lambda表達式的唯一鍵表示。如何從lambda表達式獲取唯一字符串
例如以通用庫的調用可能是:
Repository<User> userRepository = new Repository<User>();
string name = "Erik";
List<User> users_named_erik = userRepository.Find(x => x.Name == name).ToList();
在我的通用庫函數,我需要做的唯一密鑰出來的lambda表達式將其存儲在memcached中的。
所以我需要一個能做到這一點
string GetPredicate(Expression<Func<T,bool>> where)
{
}
函數的結果應該是這個字符串x=> x.Name == "Erik"
的功能。而不是像我從ToString()
方法得到的+<>c__DisplayClass0)
。
在此先感謝。
這個問題有*相當*一些變化已經問。檢查與權利有關。基本答案基本上是,在訪問者的表達式樹上編寫自己的答案。 – Marc 2011-06-15 13:54:25
我發佈這個問題的原因是沒有滿意的答案(包括問題4625846)。 – erikvda 2011-06-15 14:19:52