Tho*_*zat 4 linq nhibernate nhibernate-criteria queryover
我目前正在动态构建这样的查询:
QueryOver<Base, Base> q = QueryOver.Of<Base>();
if (foo != null) q = q.Where(b => b.Foo == foo);
// ...
Run Code Online (Sandbox Code Playgroud)
现在有多个Base(例如Derived)我想要过滤的映射子类,基本上类似于:
if (bar) q = q.Where(b => b is Derived); // does not work
Run Code Online (Sandbox Code Playgroud)
要么:
if (bar) q = q.Where(b => b.DiscriminatorColumn == 'derived'); // dito
Run Code Online (Sandbox Code Playgroud)
我如何以类型安全的方式最好地 - 但不是必须 - 实现这一目标?这可以用LINQ完成吗?
这不直观,但以下应该可以正常工作(QueryOver):
if (bar) q = q.Where(b => b.GetType() == typeof(Derived));
Run Code Online (Sandbox Code Playgroud)
我不确定在LINQ-to-NH中如何做到这一点.