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