Как можно использовать QueryOver для фильтрации по определенному классу?
В настоящее время я динамически создаю запросы, например, так:
QueryOver<Base, Base> q = QueryOver.Of<Base>();
if (foo != null) q = q.Where(b => b.Foo == foo);
// ...
Теперь есть несколько сопоставленных подклассовBase
(например,Derived
) который я хочу отфильтровать, в основном что-то вроде:
if (bar) q = q.Where(b => b is Derived); // does not work
или же:
if (bar) q = q.Where(b => b.DiscriminatorColumn == 'derived'); // dito
Как мне лучше всего достичь этого, предпочтительно - но не обязательно - безопасным для типов способом? Можно ли это сделать с помощью LINQ?