いくつかの汎用メソッドを持つリポジトリ クラスがあります。一つは
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>>
。
一般的な式を強く型付けされた式にキャスト/変換するにはどうすればよいですか?