надуманный пример, но, скажем, у меня есть эти объекты:Можно ли использовать фильтры NHibernate для фильтрации через ссылки?
public class Root
{
public virtual Customer Customer { get; set; }
}
public class Customer
{
public virtual CustomerData Data { get; set; }
}
public class CustomerData
{
public virtual string FooName { get; set; }
}
Теперь, скажем, я хочу, чтобы создать фильтр для Root на основе значения FooName. Интуитивно я пробовал это в своем классе FooMap. Использование Fluent-сопоставлений.
ApplyFilter("FooNameFilter", "Customer.Data.FooName in (:argument)");
Это не работает. A SqlClient.SqlException указано, что The multi-part identifier "Customer.Data.FooName" could not be bound.
Есть ли способ заставить фильтры работать таким образом, или я вынужден переместить эту логику во все Query<Root>()
s вместо этого?
Мои ставки находятся на том, чтобы переместить логику в ваших запросов. Насколько я понимаю, фильтры - это SQL, а не HQL, поэтому вы не сможете использовать этот интуитивно понятный синтаксис 'Customer.Data.FooName'. Я думаю, что фильтры должны быть только столбцами, которые определены в этой таблице. –
Вот чего я боюсь. Меня не задирает, но мне очень понравился API-фильтр для того, что я делал. –