Имея функцию, показанную ниже, я могу взять одну таблицу из моей базы данных и написать лямбду, используя метод расширения Where, и в значительной степени построить все остальные случаи, используя простой метод-обертку и предоставив фильтр.
public void getPeople(Expression<Func<tblPeople, bool>> filter, Action<List<tblPeople>> callback)
{
var query = from People in sdContext.tblPeople.Where(filter)
select People;
var DSQuery = (DataServiceQuery<tblPeople>)query;
DSQuery.BeginExecute(result =>
{
callback(DSQuery.EndExecute(result).ToList<tblPeople>());
}, null);
}
Что я действительно хотел бы сейчас сделать, так это написать еще более общий метод, который абстрагирует tblPeople от параметра. Таким образом, у меня могут быть только однострочные методы для всех моих вызовов, по крайней мере те, которые предоставляют списки! Как я могу взять это и построить:
public void getTable<T>(Expression<Func<T, bool>> filter, Action<List<T>> callback)
{
var query = from DB in sdContext.T.Where(filter)
select DB;
var DSQuery = (DataServiceQuery<T>)query;
DSQuery.BeginExecute(result =>
{
callback(DSQuery.EndExecute(result).ToList<T>());
}, null);
}
Возможно ли это!