nhibernate+;流利+;映射
我有一个表和映射:nhibernate+;流利+;映射,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我有一个表和映射: public class CategoryMap : ClassMap<Category> { public CategoryMap() { Table(FieldNames.Category.Table); Id(x => x.ID); Map(x => x.Name).Not.Nullable(); Map(x => x.ShowInMenuBar).Not.Nu
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Table(FieldNames.Category.Table);
Id(x => x.ID);
Map(x => x.Name).Not.Nullable();
Map(x => x.ShowInMenuBar).Not.Nullable();
References(x => x.Parent).Column(FieldNames.Category.ID).Nullable();
HasMany(x => x.Articles).Cascade.All().Inverse().Table(FieldNames.Article.Table);
}
}
排队
public virtual Category? Parent { set; get; }
或
public虚拟可空父级{set;get;}
因为我在编译期间出错:
CMS.Domain.Entities.Category”必须是不可为null的值类型,才能在泛型类型或方法“System.nullable”中将其用作参数“T”
我不知道如何更改才能在没有父对象的情况下保存类别对象。我猜您正在尝试保存一篇文章,(您指定了反向),因此您需要:
第条.类别=类别 不能使引用类型为null(因为它已经是null)
Nullable
(或T?
)只能与非Nullable值类型(例如int
或DateTime
)一起使用
错误涉及CMS.Domain.Entities.Article.Category-Article类中的Category属性。您没有为项目实体提供映射文件,但是我假设它映射Category属性,或者指定了Not.Nullable()
,或者没有指定Nullable()
如果域模型允许项目实体包含空类别,请使用Nullable()
,否则在创建/保存项目时需要设置类别:
Article.Category = aCategory;
不能为该类别设置Null的原因是,Nullable仅适用于值类型,而Category根据定义是引用类型,因此已经可以在定义为Category的属性上支持Null。能否提供异常的完整堆栈跟踪
public virtual Category? Parent { set; get; }
public virtual Nullable<Category> Parent { set; get; }
Article.Category = aCategory;