我是NHibernate的新手。假设您有一个像这样的Customer类
public class Customer {
public virtual int CustomerID { get; set; }
public virtual string Name { get; set; }
public virtual CustomerType CustomerType { get; set; }
}
其中CustomerType
是一个简单地将值处理为
所以CustomerType
值不会经常变化,在某些情况下它们根本不会改变(例如,一个人的性别)
哪种方法可以处理这种情况?
如果我在尝试插入新客户时在此示例中映射查找类,我应该首先在数据库中找到正确的CustomerType吗?或者最好在这些情况下使用Enum类?
答案 0 :(得分:1)
你可以做任何一件事 - 它不是真正的NHibernate问题。
Enums显然在简单性方面提供了巨大的回报,但随着围绕它们的业务逻辑变得更加复杂,它们将开始受到欢迎。
对于实体,业务规则可以作为实体的属性或方法包含在内。使用枚举,业务逻辑必须在其他地方处理,这可能会产生更复杂的代码。
可以在以后将枚举转换为实体,但不能直接转换。
答案 1 :(得分:1)
来自WellKnownInstanceType的uNhAddIns更好地替代了枚举。
它可以帮助您实现几乎没有增加噪音的策略模式。