NHibernate继承-鉴别值 [英] NHibernate Inheritance - Discriminator-Value
问题描述
是否可以在NHibernate中使用像这样的鉴别器?
Is it possible to have a discriminator that works like this with NHibernate?
如果值等于String.Empty-> Class1 否则-> Class2
If the value equals String.Empty --> Class1 Else --> Class2
我已经有一个CultureName的字符串列,我想将其用作区分符.我不想添加额外的布尔列. 如果CultureName是String.Empty,那么我想上一堂课,否则我想上一堂课.
I already have a string column for CultureName and I would like to use it as a discriminator. I don't want to add an extra boolean column. If the CultureName is String.Empty then I would like to one class, else another one.
如果不可能,您能帮我找到一种方法吗?
If it is not possible, could you help me find a way to do this.
我正在使用xml映射(不是Fluent NHibernate).
I'm using xml mappings (not Fluent NHibernate).
我要搜索的是else(默认)情况下的通配符,因此我可以这样映射:
What I'm searching for is something like a wildcard for the else (default) case so I can map like this :
<subclass name="Class1" discriminator-value="">
<subclass name="Class2" discriminator-value="*">
推荐答案
您可以在主类中添加一个区分符forumla
You can add a discriminator forumla to the primary class
<判别器公式="当discriminatorID =``则1 else 2结尾'/>的情况
<discriminator formula="case when discriminatorID = '' then 1 else 2 end"/>
然后
<子类名称="Class1" discriminator-value ="1">
<subclass name="Class1" discriminator-value="1">
<子类名称="Class2"; discriminator-value ="2">
<subclass name="Class2" discriminator-value="2">
这篇关于NHibernate继承-鉴别值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!