私はMonoDroidWebサイトでTaskyのケーススタディをフォローしていますが、フィルタリングと順序付けのクエリを作成しているときに壁にぶつかりました。誰かが私がどこで間違っているのか説明してもらえないかと思っていました。私はおそらく完全に逆行しているのでしょう!
エラーが発生します:
メソッド'ICanTalk.BusinessLayer.Services.WordServices.Find(System.Func、System.Func、bool、int、int)'の型引数は、使用法から推測できません。タイプ引数を明示的に指定してみてください。
リポジトリの1つに次のコードがあります。うまくいけば、私がやろうとしていることはある程度明確です。私はまだそれを構築して、それが機能するかどうかをテストすることができていません:
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);