开发者

Query by type using Linq on an nHibernate table by sub-class structure

开发者 https://www.devze.com 2023-01-12 09:57 出处:网络
I have quite a complex entity structure where several classes inherit from a base class, hence choosing a table per-subclass structure in nhibernate.

I have quite a complex entity structure where several classes inherit from a base class, hence choosing a table per-subclass structure in nhibernate.

BaseProject

ProjectA : BaseProject  
ProjectB : BaseProject  
ProjectC : BaseProject  
ProjectD : BaseProject

I want to search where one开发者_如何学Python of the criteria will be ProjectType. I'm trying to avoid writing a seperate query specification for each ProjectType.

Does anyone know how this might be achieved? Is it even something Linq to nHibernate can do, as I think it isn't complete yet.

I was expecting something like x => x.GetType() == typeof(ProjectTypeA) to work but it doesn't.


Unfortunately, the way you've described is the only way to do this using the current Linq provider. You'll need to expose a property (likely an enumeration) mapped with NHibernate that is exposed by each sub class. One useful trick is to map this property with update=false to ensure it is never changed.

You can see my answer to a similar question here for further details.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号