При использовании функции, как показано ниже, я могу взять одну таблицу из своей базы данных и написать lambda, используя метод расширения Where, и в значительной степени собрать все остальные случаи, используя простой метод обертки и поставку фильтра.Generic Database Linq
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);
}
Возможно ли это!
Я должен уточнить, что я использую ADO.NET DataServices, и я не думаю, что это GetTable метод доступен в SilverLight клиентской библиотеки. Это почти то, что я искал! – DavidA