【问题标题】:NHibernate MySQL EnumNHibernate MySQL 枚举
【发布时间】:2010-04-20 15:19:08
【问题描述】:

我正在尝试访问“MYSQL”数据库表以创建用于添加用户和权限的 GUI。

这样做,我遇到了我的第一个 NHibernate 问题。如何将 MySQL 枚举映射到 C# 布尔值?或者如果不可能,那么至少要一个枚举?

数据库字段被定义为

enum('N', 'Y')

这些是数据库中的所有权限字段。

现在有没有办法在 C#/NHibernate 中将它放入枚举甚至更好的 boolean 中?

编辑 #1: 在 C# 中,如果我需要声明一个枚举,它将如下:

enum YesNoEnum
{
  Yes,
  No
}

【问题讨论】:

  • 你是如何声明你的 C# 枚举的?
  • 我希望它是一个布尔值,但请参阅编辑#1:上面

标签: c# .net mysql nhibernate enums


【解决方案1】:

您可以在 C# 中使用 bool 并使用自定义 IUserType 实现将其映射到 MySQL 中的 char。 This example 正是您要找的。​​p>

【讨论】:

  • 感谢 :D 我从那篇文章中发现 YesNoType 实际上是内置在 NHibernate 中的(至少我使用的版本是 2.x)
【解决方案2】:

我不知道在 NHibernate 中使用 MySQL 的枚举,但我知道如果你想在 C# 中使用布尔字段并将其映射到 MySQL 数据库,你可以这样做:

MyDto.cs:

public bool IsAdmin {get;set;}

数据库中的列定义:

`IsAdmin` TINYINT(1) NOT NULL DEFAULT 0

【讨论】:

  • 这行不通,我正在尝试访问内置的 MySQL 权限表。因此我无法更改/创建架构/列定义。
  • 啊,我明白了,对不起,那帮不了你了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多