有点困难。基本上我有一个方法,我想返回一个谓词表达式,我可以用作Where条件。 我认为我需要做的是类似于此:http://msdn.microsoft.com/en-us/library/bb882637.aspx但我有点卡住,我需要做什么。如何根据用户输入动态构建并返回一个linq谓词
方法:
private static Expression<Func<Conference, bool>> GetSearchPredicate(string keyword, int? venueId, string month, int year)
{
if (!String.IsNullOrEmpty(keyword))
{
// Want the equivilent of .Where(x => (x.Title.Contains(keyword) || x.Description.Contains(keyword)));
}
if (venueId.HasValue)
{
// Some other predicate added...
}
return ??
}
实例应用:
var predicate = GetSearchPreducate(a,b,c,d);
var x = Conferences.All().Where(predicate);
我需要这种分离,这样我可以通过我的谓语进入我的仓库,并在其他地方使用它。
不错,正是我想要的:) – 2010-10-14 12:24:33