我一直在关注MonoDroid 网站上的Tasky 案例研究,但在创建过滤和排序查询时遇到了困难。我想知道是否有人可以解释我可能会出错的地方吗?我可能正在做一些完全倒退的事情!
我得到错误:
无法从用法中推断出方法“ICanTalk.BusinessLayer.Services.WordServices.Find(System.Func, System.Func, bool, int, int)”的类型参数。尝试明确指定类型参数。
我的一个存储库中有以下代码,希望我想要做的事情很清楚。我还没有能够构建它来测试它是否有效:
public static IEnumerable<Word> Find<T,U>(Func<Word, bool> whereClause, Func<Word,U> orderBy, bool ascending, int show, int page)
{
int currentPage = page;
int resultsPerPage = show;
int skip = currentPage*show;
var result = ascending
? me.db.Find<Word>().Where(whereClause).OrderBy(orderBy).Take(resultsPerPage).Skip(skip)
: me.db.Find<Word>().Where(whereClause).OrderByDescending(orderBy).Take(resultsPerPage).Skip(skip);
return result;
}
从我的服务中,我从这里调用此方法:
public static IList<Word> Find<T>(Func<Word, bool> whereClause, Func<Word,DateTime> orderBy, bool ascending, int show, int page)
{
return WordRepository.Find<Word, DateTime>(whereClause, orderBy, ascending, show, page).ToList();
}
我想要实现的是来自 MonoDroid 中的事件处理程序的调用,例如:
var wordTest = WordServices.Find(x => x.ChildId == 3, x => x.AddedAt, true, 5, 1);