|
|
1
84
定义此约定的方式在以前有时会改变,现在是:
|
|
|
2
45
所以,正如前面提到的,把最新版本的Fluent-NHibernate从后备箱上取下来让我到达了我需要的地方。具有最新代码的枚举的映射示例如下:
自定义类型强制将其作为枚举实例处理,而不是使用
实际上,我正在考虑提交一个补丁,以便能够在一个持久化字符串的枚举映射器和一个持久化int的枚举映射器之间进行更改,因为您应该能够将它设置为约定。 这在我最近的活动中突然出现,在更新版本的Fluent NHibernate中,情况发生了变化,使这变得更容易。 要将所有枚举映射为整数,现在可以创建如下约定:
那么您的映射只需是:
将约定添加到Fluent NHibernate映射,如下所示;
|
|
|
3
40
|
|
|
4
25
这就是我如何将枚举属性映射为int值的方法:
为我工作! |
|
|
5
1
对于使用Fluent NHibernate和自动映射(以及可能的IoC容器)的用户:
这个
Fluent NHibernate自动映射配置可以如下配置:
*然后
|
|
|
6
0
|
|
|
7
0
您应该在DB表中将这些值保持为int/tinyint。要映射枚举,需要正确指定映射。请参见下面的映射和枚举示例,
public class TransactionMap : ClassMap Transaction
{
public TransactionMap()
{
//Other mappings
.....
//Mapping for enum
Map(x => x.Status, "Status").CustomType();
Table("Transaction");
}
}
枚举 public enum TransactionStatus
{
Waiting = 1,
Processed = 2,
RolledBack = 3,
Blocked = 4,
Refunded = 5,
AlreadyProcessed = 6,
}
|
|
|
Nico Pizzo · 子查询上的nhibernate联接 8 年前 |
|
|
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 8 年前 |
|
|
Stu · 具有特定类型的字符串外键的NHibernate映射 8 年前 |
|
|
Zout · 为Hibernate的HiLo算法管理的列生成ID 8 年前 |