我有以下EF课程:
class Product
{
public int ProdId { get; set; }
public int ProdDesc { get; set; }
public int ProdKeywords { get; set; }
}
现在我必须实现一个查看ProdDesc
和的搜索功能ProdKeywords
。关键字注册在 aarray
中,产品集合在 a 中IQueryable
string[] keywordsArray = new string[] {"kw1", "kw2", ..., "kwN"};
IQueryable<Product> products = repository.GetProducts();
要查看是否有与关键字匹配的产品,我使用以下LINQ:
var matchingProducts = products.Where(p => keywordsArray.Any(k => p.ProdDesc.Contains(k) ||
p.ProdKeywords.Contains(k));
这就像 .NET 4 中的魅力一样。
最大的问题是我被迫在.NET 3.5中使用此代码,而我刚刚发现Any
并且Contains
(LINQ 方法,而不是应用于字符串的方法)在该框架中不起作用。那是一个真正的痛苦。代码太大,无法重写所有内容,而且截止日期太近了。
我发现这篇文章真的很有趣,但我无法让它在我的情况下发挥作用。有人可以帮忙吗?