【发布时间】:2009-11-06 14:39:38
【问题描述】:
我看到很多类似下面的代码
var customrs = MyDataContext.Customers.Where(...);
if (!String.IsNullOrEmpty(input)) {
customers = customers.Where(c => c.Email.Contains(input));
}
我想把它放在一个扩展方法中,在调用 IQueryable 上的 Where 之前检查输入是否有效,以便可以像这样调用它
customers = MyDataContext.Customers.Where(...)
.ContainsText(c => c.Email, input);
我的扩展方法是这样的
public static IQueryable<T> ContainsText<T>(this IQueryable<T> source, Expression<Func<T, string>> selector, string text) {
if (String.IsNullOrEmpty(text) {
return source;
}
else {
//do something here
}
}
如何在解析的表达式上调用 Contains()?或者是否有另一种方法可以返回 IQueryable 的结果,其中已解析的表达式包含已解析的文本?
更新:用于 Linq to Sql
【问题讨论】:
标签: c# linq-to-sql c#-3.0 iqueryable