0

私の目的は、次のようなことを達成することです。

IList<People> peeps = _peopleRepository.Get<People>(x.Name == "dan");   
//signature looks like this:  IList<T> Get<T>(Func<T, bool> query) where T : IEntity;

これは内部的にこれを行うでしょう:

_sessionFactory.GetCurrentSession().QueryOver<People>(x.Name=="dan").List();
//NHibernate.IQueryOver<T,T> QueryOver<T>(System.Linq.Expressions.Expression<Func<T>> alias)
where T : class

私が抱えているこの問題は、タイプが明らかに異なるため、「クエリ」を「エイリアス」に変換することです。これは無駄な作業ですか?私が目指していることを達成する方法はありますか?

4

1 に答える 1

0

私は NHibernate を使用していませんが、型シグネチャが異なっているようです。Get メソッドは type のパラメーターを受け入れる必要がありますSystem.Linq.Expressions.Expression<Func<T, bool>>。このようにして、同じ型のパラメーターを受け入れる QueryOver メソッドに渡すことができます。

于 2012-06-13T15:20:31.550 に答える