【问题标题】:nhibernate fluent bool to smallint mappingnhibernate fluent bool 到 smallint 的映射
【发布时间】:2010-06-15 19:18:11
【问题描述】:

在我的应用程序中,我有一个名为 DisplayIndi​​cator 的 bool 属性。在数据库 (DB2) 中,它对应的是 smallint 类型的 DISPL_IND 列。 对应关系如下: [DisplayINdicator=True, DISPL_IND=1] 和 [DisplayINdicator=假,DISPL_IND=0] 是否可以使用 nhibernate fluence 将 bool 属性映射到 smallint?

【问题讨论】:

  • 这行不通吗?在 MySQL 中也是一样的——一个布尔值被映射为一个 tinyint。我只是在我的代码中使用 bool 并且不需要做任何特别的事情。
  • 它不知道将 true 转换为 1。它生成值为“True”的查询,但在数据库中它失败了。
  • 好吧,那肯定和 MySQL 有点不一样。 MySQL 的类型 TRUE 和 FALSE 映射到 1 和 0

标签: c# fluent-nhibernate nhibernate-mapping


【解决方案1】:

在 Frans 的建议下,我想通了。 我创建了一个代表 nhibernate 用户类型的类,用于将布尔类型映射到短类型:

公共类 BooleanAsShortType : IUserType

在映射中,我添加了一个 CustomType 属性,现在它看起来像这样:

Map(x => x.DisplayIndi​​cator, "DSPL_IND").CustomType();

【讨论】:

    【解决方案2】:

    您可以在一个类上实现 IUserType 并将 bool 转换为 short 并返回并将其应用于您需要的字段。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 2011-06-18
      • 2012-04-03
      • 1970-01-01
      • 2012-10-19
      • 2013-01-07
      • 2013-04-04
      • 1970-01-01
      相关资源
      最近更新 更多