我在带有 DI 的存储库模式中使用 NHibernate 以保持灵活性。我不希望相关的接口暴露任何特定于供应商的东西,比如 ICriterion。但是,我希望我的查询类接受我可以放入 .Where 子句的委托。
我需要类似的东西:
public IEnumerable<MyClass> Execute(Func<MyClass, bool> selector)
{
return session
.QueryOver<MyClass>()
.Where(selector)
.....
}
有没有办法实现这一点,还是我以错误的方式去做?