いくつかの汎用メソッドを持つリポジトリ クラスがあります。一つは
public IEnumerable<T> FindAll<T>(Expression<Func<T, bool>> predicate) where T : class
{
return GetDbSet<T>().Where(predicate);
}
単体テストTestRepositoryでは、データベースの代わりにインメモリ オブジェクトを使用します。はメソッドをTestRepositoryオーバーライドし、FindAll返されるものを制御したいと考えています。だから私はこのようなことができるようにしたい:
public override IEnumerable<T> FindAll<T>(Expression<Func<T, bool>> predicate)
{
return MyEntities.Where(predicate).Cast<T>();
}
ただしMyEntities.Where()、 a のみを受け入れますExpression<Func<MyEntity, bool>>。
一般的な式を強く型付けされた式にキャスト/変換するにはどうすればよいですか?