想到兩個想法。
1)。 Dynamic LINQ,它允許您定義運算符作爲字符串的位置。
var result = Northwind.Products
.Where("CategoryId=2 And UnitPrice>3")
.OrderBy("SupplierId");
2)。使用的東西作爲EntityFilter<T>
(見代碼here),它允許你定義這樣的過濾器:
IEntityFilter<Person> entityFilter =
from person in EntityFilter<Person>.AsQueryable()
where person.Name.StartsWith("a")
where person.Id < 100
select person;
您可以提供IEntityFilter<Person>
的業務方法,將能夠以過濾查詢:
public static Person[] GetAllPersons(
IEntityFilter<Person> filter)
{
using (var db = ContextFactory.CreateContext())
{
IQueryable<Person> filteredList =
filter.Filter(db.Persons);
return filteredList.ToArray();
}
}
也許你應該給我們看一些代碼。我不認爲很多人知道Raptier stuf是怎麼樣的。 – Steven 2010-11-16 19:55:59