이 같은 몇 가지 일반적인 검색 방법 작성해야합니다 :C# 일반 Linq는 쿼리
public List<T> Search<T>(SearchParamsBase searchParams)
{
using (var context = new TestEntities())
{
var dataType = TypeMap.Get(typeof (T));
var dataSet = context.Set(dataType);
var searchQuery = CreateQuery((IEnumerable<object>) dataSet), searchParams)
return searchQuery.ToList()
}
}
을 나는 IEnumerable
개체를 필터링해야하는 기능 CreateQuery()
있습니다. 이 기능은 모든 클래스에 따라 다릅니다. 예 :
CreateQuery(IEnumerable<object> collection, SearchParamsBase searchParams)
{
var search = (SomeSearchImplementation)searchParams;
// filter
collection = collection.Where(x => x.Name == search.Name);
// select page
collection = collection.Skip(search.Page * search.CountPerPage);
collection = collection.Take(search.CountPerPage);
// order by and so on
// ...
return collection;
}
이 아이디어를 올바르게 구현하려면 어떻게해야합니까?