我創建的字符串類型的簡單擴展方法:擴展方法where子句
public static bool Contains(this string word, string[] values)
{
foreach(string s in values)
{
if(!word.Contains(s))
return false;
}
return true;
}
現在
,我有一個LINQ查詢,看起來像這樣:
public static IEnumerable<ISearchable> Search(params string[] keywords)
{
XPQuery<Customer> customers = new XPQuery<Customer>(unitOfWork); // **
var found = from c in customers
where c.Notes.Contains(keywords)
select c;
return found.Cast<ISearchable>();
}
我在where子句中得到'方法不被支持'異常,如果我使用string.Contains方法,這將很好地工作。
我的擴展方法有什麼問題,或者我試圖在linq where子句中使用它嗎?
** XPQuery是一個devexpress組件,因爲這是我使用的ORM,它是它們的linq-to-xpo查詢對象。
希望是讓我的Contains(string [] s)方法感覺像string.Contains(string s)的重載。此外,我使用您提供的內容獲得了相同的錯誤。似乎它可能是LINQ到XPO的問題,但我不知道如何確定。 – 2010-09-14 22:09:46