EF6(alpha3)非同期拡張メソッドを利用するように既存のプロジェクトを変更しています。linqtoentitiesクエリに渡されるfuncパラメータを受け取るメソッドが1つあります。動作するコード、pre-asyncの例を次に示します。
public IEnumerable<type> GetTypeSet(Func<Type, bool> predicate)
{
return dbSet.Where(d => d.isPublic == true).Where(predicate).tolist();
}
非同期を適用した後:
public async Task<IEnumerable<Type>> GetTypeSet(Func<Type, bool> predicate)
{
return await(dbSet.Where(d => d.isPublic == true)
.Where(predicate)).ToListAsync();
}
この時点で、IEnumerableにToListAsyncの定義がないことを示すエラーが表示されます。削除する.Where(predicate)
と正しく機能します。
私はこれを正しく行っているのか、それとも非同期で作業するときに述語を渡すためのより良いオプションがあるのか興味があります。