映射到枚举列表?

2024-02-06

我需要使用 NHibernate 将具有枚举列表的类映射到数据库表

这是对象

public class Driver : IIdentity
{
    private IList<Licence> licences;

    /// <summary>
    /// The drivers licences
    /// </summary>
    public virtual IList<Licence> Licences
    {
        get
        {
            return this.licences;
        }
        set
        {
            this.licences = value;
        }
    }
    ..... rest of the class ....
}

//the enum
public enum Licence
{
    FivePersonCar = 5,
    SixPersonCar = 6
}

---------------- 这是数据库表

TABLE [dbo].[DriverLicence]( [DriverId] [int] NOT NULL, [Level] [int] NOT NULL)

TABLE [dbo].[Driver]( [DriverId] [int] NOT NULL, [Name] [varchar](150) NULL)

-------------这是我的 Driver 流利地图

public class DriverMap : ClassMap<Driver>
{
    public DriverMap()
    {
        Id(x => x.Id).WithUnsavedValue(0).GeneratedBy.Identity();

        Map(x => x.Name);

        HasManyToMany(x => x.Licences)
            .WithTableName("DriverLicence")
            .AsElement("Level").AsBag();


        HasManyToMany(x => x.InsuredToDrive)
            .CollectionType<InsurancedList>()
            .WithTableName("InsuredWith");
    }

}

----- 这会生成以下 HBM 文件

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="">
  <class name="Taxi.DomainObjects.Driver, Taxi.DomainObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="`Driver`" xmlns="urn:nhibernate-mapping-2.2">
    <id name="Id" type="Int32" unsaved-value="0" column="DriverID">
      <generator class="identity" />
    </id>
    <property name="Name" type="String">
      <column name="Name" />
    </property>
    <bag name="Licences" table="DriverLicence">
      <key column="DriverId" />
      <many-to-many column="LicenceId" class="Taxi.DomainObjects.Licence, Taxi.DomainObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </bag>
    <bag name="InsuredToDrive" collection-type="Taxi.DomainObjects.Collections.InsurancedList, Taxi.DomainObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="InsuredWith">
      <key column="DriverId" />
      <many-to-many column="CarId" class="Taxi.DomainObjects.Car, Taxi.DomainObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </bag>
  </class>
</hibernate-mapping>

这是我的错误

“DriverLicence 表中的关联引用未映射的类:Taxi.DomainObjects.Licence”

有人知道我做错了什么吗?


NHibernate 认为枚举是一种原始类型,因此您不应该使用many-to-many和一个班级attribute。在 .hbm 术语中,您需要这样的东西:

<bag name="Licences" table="DriverLicence">
  <key column="DriverId" />
  <element column="LicenceId" type="Taxi.DomainObjects.Licence, Taxi.DomainObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</bag>

虽然在像这样的 hbm 映射中你可以省略长type属性。我的 Fluent 语法不是很好,所以恐怕我无法帮助你。这个问题 https://stackoverflow.com/questions/439003/how-do-you-map-an-enum-as-an-int-value-with-fluent-nhibernate可能会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

映射到枚举列表? 的相关文章

随机推荐

  • AsyncTask 中的 android.os.NetworkOnMainThreadException

    我意识到当您尝试在 UI 线程上执行某种网络请求时会发生此错误 但正如您在下面的代码中看到的 我实际上是在 AsyncTask 中调用 Http Get public class LeftPaneFragment extends Fragm
  • Eclipse 是否将第 3 方 GWT 库上传到 GAE?

    降低应用程序冷启动延迟的技巧之一是使用 上传尽可能少的 JAR 我想知道如何防止第 3 方 GWT 库 如 gwtquery jar 等 上传到 GAE 一旦应用程序被编译 这些就变得毫无用处 所以如果它们归因于延迟 那将是非常不幸的 如果
  • 表单设计器打破了通用抽象 UserControl

    我有一个通用摘要UserControl class SensorControl 我希望所有传感器控制面板都继承它 问题 当尝试设计时EthernetSensorControl 我从 Visual Studio 继承的 UserControl
  • 编译可在 iOS 6 和 iOS 7 中运行的应用程序

    我正在努力编译一个在 iOS 6 和 iOS 7 上使用的 iPad 应用程序 这是我不断收到的消息 Property barTintColor not found on object of type UITabBar did you me
  • WPF 网格布局面板,行高设置为“自动”

    我想要一个顶部和底部各有一行的网格 其中有标签或按钮 在中间我计划使用一个列表框 我希望列表框能够扩展以使用所有可用空间 最好不要对其他两行的高度进行硬编码 我的 XAML 如下 如何让中间部分自动展开 谢谢
  • 如何将Oracle引用游标提取到表变量中?

    我正在尝试将数据从引用游标加载到表变量 或数组 中 如果表变量基于现有表 Rowtype 则引用游标可以工作 但我的引用游标得到 通过连接多个表来加载 所以让我尝试举一个例子来演示我正在尝试做什么 有人可以帮助我 created table
  • 合并字典时出现类型错误:| 不支持的操作数类型:“dict”和“dict”

    我想使用加入两个字典 操作员 我收到以下错误 TypeError unsupported operand type s for dict and dict MWE代码如下 d1 k 1 l 2 m 4 d2 g 3 m 7 e d1 d2
  • 需要构建自定义 NER 的方法,以便从任何格式的工资单中提取以下关键字

    我正在尝试从任何格式的工资单中构建以下参数的通用提取 Name 他的邮政编码 Pay Date Net Pay 我面临的挑战是由于可能出现的各种格式 我想应用 NER Spacy 在实体下学习这些 姓名 人 他的邮政编码 付款日期 日期 净
  • 是否可以以编程方式为 Android 中的 RecyclerView 子项设置重力?

    我正在尝试在 RecyclerView 中为儿童设置重力 但 LayoutParams 似乎没有重力方法 我已经尝试过以下方法 RecyclerView LayoutParams params new RecyclerView Layout
  • 如何解决 INKApi 错误

    我们正在开发WEB产品 我们的一位客户面临着 INKApi error 500 错误 这是不同的 我在谷歌上有搜索 没有人能够解决这个错误 INKApi 是什么 什么时候会抛出这个错误 谁会抛出这个错误 Apache 或 JVM 或 如果有
  • 在 iPhone 应用程序之间共享 sqlite 数据库

    这可能吗 我可以将数据库复制到用户的主目录 然后使用多个程序访问它吗 我猜答案是 不 因为它会使复制和粘贴变得非常微不足道 但我想我会问 没有 这就是 OpenClip 所做的 好吧 不是数据库 但 2 1 打破了它 http gizmod
  • 如何循环遍历包含对象的数组并访问其属性

    我想循环遍历数组中包含的对象并更改每个对象的属性 如果我这样做 for var j 0 j lt myArray length j console log myArray j 控制台应该显示数组中的每个对象 对吧 但实际上它只显示第一个对象
  • Numpy 2D 图像转 3D

    我有一个表示为 2D numpy 数组的灰度图像 并希望将其变成表示彩色 rgb 图像 显然仍然是灰色 的 3D numpy 数组 img shape 100 100 img 10 10 e g 42 do something img sh
  • 如何使用 Mat-Select 属性 [Selected]

    我有一个允许翻译 pipng 的组件 通过资产下的 json 文件 它与默认选择框完美配合 可以选择我们希望显示的语言 如下所示 效果很好
  • 使用 firestore 对 C# 桌面应用程序进行身份验证

    我已经准备好了使用 firestore 数据库的桌面应用程序 为了访问它 我使用了 GOOGLE APPLICATION CREDENTIALS 根据文档 我无法引入此类身份验证的规则 但我想这样做 我已向支持人员发送问题 并被告知使用 R
  • C程序如何以表格格式对齐打印

    输入是从文本文件中检索的 其中包含以下信息 产品编号 产品名称 产品数量 产品价格 1 RAYBAN 1 450 000000 900 KEYBOARD 100 290 000000 78 MINERALWATER 123 345 0000
  • 具有属性的 JSON 数组

    我有以下 js 数组 对象 var x 1 2 3 4 x name myArray 我正在使用 json2 js 并且尝试将 x 序列化为字符串 我得到的只是数组 1 2 3 4 那是对的吗 既然我可以向数组添加任何属性 为什么 json
  • 生成 DLL 后是否可以(重新)创建 PDB 文件

    我有 DLL 并且有用于创建 DLL 的确切源代码 当我们从客户那里获得转储文件时 我希望我们的本地符号服务器能够工作 在我们产品的下一个补丁 版本之前无法在客户站点更新 DLL 这似乎是不可能的 看看这里 为什么 Visual Studi
  • 为什么在 Window.Resources 项目上设置 x:Name 不起作用

    我只是好奇为什么当我通过访问大多数控件时x Name 对于我这样做的资源x Key 我无法从代码访问它 可以使用this Resources keyName x Key 为ResourceDictionary 或其他框架中的类似字典概念 中
  • 映射到枚举列表?

    我需要使用 NHibernate 将具有枚举列表的类映射到数据库表 这是对象 public class Driver IIdentity private IList