NHibernate设置属性默认值

时间:2009-08-13 04:00:30

标签: nhibernate fluent-nhibernate

是否可以在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。

2 个答案:

答案 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