gpt4 book ai didi

nhibernate - 将多个鉴别器值映射到 NHibernate 中的单个默认类

转载 作者:行者123 更新时间:2023-12-03 12:28:49 25 4
gpt4 key购买 nike

我有一个现有的 角色类型 有数据的表。我正在尝试使用 Table per class hierarchy 在 NHibernate 中映射此表:

<class name="IRoleType" table="RoleType">

<id name="Id" column="RoleID">
<generator class="native" />
</id>

<discriminator column="RoleID" />

<property name="Description" column="Description" />
<!-- ... more properties ... -->

<subclass name="RoleA" discriminator-value="1" />
<subclass name="RoleB" discriminator-value="4" />
<subclass name="RoleC" discriminator-value="7" />
</class>

在这里, IRoleType 是一个接口(interface),具有实现者 角色A , 角色B 角色C .这行得通。但问题来了——

该表包含具有未映射到持久类的“额外”鉴别器值 (2,3,5,6) 的行。这些值在域中已被弃用,因此为每个值创建持久类没有用。但是我们也不能从数据库中删除它们。

有没有办法将这些额外的行映射到单个“默认”类?如果没有,我还能如何解决这个问题?

谢谢!

最佳答案

您可以通过将这些值映射到单个值来做到这一点。例子:

<discriminator
formula="case when RoleID in (2,3,5,6) then 0 else RoleId end" />
<subclass name="RoleA" discriminator-value="1" />
<subclass name="RoleB" discriminator-value="4" />
<subclass name="RoleC" discriminator-value="7" />
<subclass name="DefaultRole" discriminator-value="0" />

关于nhibernate - 将多个鉴别器值映射到 NHibernate 中的单个默认类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com