正如其他人提及的,你的FunctionOn
方法沒有由數據源直接平移。
但是,可能有變通的辦法 - 大你正在做一個比較,這取決於你需要做什麼樣的比較,以及如何。
相反,如果你創建一個擴展方法,這需要一個IQueryable<T>
並返回IQueryable<T>
你可以直接寫你的表達。
這可以讓您重新使用複雜的表達式。您還應該能夠與參考數據列表進行比較 - 但是您需要注意,此比較列表不會超過數據源允許的參數。
例子:
static void Main(string[] args)
{
var data = new List<Customer>
{
new Customer {Id = 1, Name = "Anna"},
new Customer {Id = 2, Name = "Bob"},
new Customer {Id = 3, Name = "Claire"}
};
var result = data.AsQueryable().TestCustomer();
}
private static IQueryable<Customer> TestCustomer(this IQueryable<Customer> source)
{
return source.Where(x => x.Id > 1);
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
}
你什麼錯誤? `FunctionOn`應該返回`bool`。 – 2011-01-22 11:53:03
是的,像這種方法的錯誤不支持或類似的東西。 (我無法使用它) – Rawhi 2011-01-22 11:54:35
編譯錯誤或運行時異常? – Elisha 2011-01-22 11:55:58