我有一个非常复杂的实体结构,其中有几个类继承自基类,因此在nhibernate中选择一个表每子类结构。
BaseProject
ProjectA : BaseProject
ProjectB : BaseProject
ProjectC : BaseProject
ProjectD : BaseProject
我想搜索其中一个条件是ProjectType的位置。我正在努力避免为每个ProjectType编写单独的查询规范。
有谁知道如何实现这一目标?它甚至是Linq对nHibernate可以做的事情,因为我认为它尚未完成。
我期待像x => x.GetType() == typeof(ProjectTypeA)
这样的东西可以工作,但事实并非如此。
答案 0 :(得分:1)
不幸的是,您所描述的方式是使用当前Linq提供程序执行此操作的唯一方法。您需要公开由每个子类公开的NHibernate映射的属性(可能是枚举)。一个有用的技巧是使用update=false
映射此属性,以确保它永远不会更改。
您可以查看我对类似问题here的回答,了解更多详情。