是否可以在NHibernate中设置属性的默认值?这是场景:
我有一个自我加入表Category
。类和表结构如下:
Category
int Id
string Name
Category ParentCategory
Category
int Id not null
varchar Name not null
int ParentCategoryId not null
如果某个类别没有父级,则ParentCategoryId
必须为0。
我该怎么做? TIA。
答案 0 :(得分:0)
如果nHibernate正在强制执行此关系,我不相信您可以将其形成无效关系。我将在数据库中创建一个虚拟父记录0,并将所有内容分配给它。
答案 1 :(得分:0)
如果ParentCategoryId不受外键约束,那么您可以在代码中使用...类似于:
class Category{
....
public static Category NoParent{
get{ return new Category{Id = 0}; }
}
....
}
现在,只需将其设置为NoParent,而不是设置为null。或者在ParentCategory的setter中,如果value为null,则将其设置为NoParent。
这基本上是 Spencer Ruport的 ideea:P