NHibernate继承-鉴别值 [英] NHibernate Inheritance - Discriminator-Value

查看:61
本文介绍了NHibernate继承-鉴别值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆