2
我工作的一个项目,我们正在使用流利的NHibernate和对我们的实体仓库执行查询的NHibernate重用的业务逻辑。我们经常编写查询这样的:LINQ在查询
(from person in repository.Query<Person>()
where person.Age > 18
where person.Age < 50
select person).Single();
显然,我们在这里有一些逻辑,我们希望能够为地方更明智的封装它。一个理想的解决办法来做到这一点:
(from person in repository.Query<Person>()
where personIsTheRightAge(person)
select person).Single();
bool personIsTheRightAge(Person person)
{
return person.Age > 18 && person.Age < 50;
}
但NHibernate的不知道该怎么处理这个问题。
我们可以为IQueryable提供扩展方法< Person>但是如果我查询具有驱动程序的Car实体Person并且我需要重用相同的逻辑,那么这将不起作用。
我只是想知道如果任何人有如何的方式,很容易在一个项目重复使用解决这个问题,一些不错的想法。
在此先感谢您的帮助。