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並且我需要重用相同的邏輯,那麼這將不起作用。
我只是想知道如果任何人有如何的方式,很容易在一個項目重複使用解決這個問題,一些不錯的想法。
在此先感謝您的幫助。