我有几个对象。为什么nhibernate抱怨删除这个对象?
项目对象 - 这代表了一个基本项目
ProjectDependency对象 - 这是映射对象的一个项目映射到另一个项目(依赖项目)。见NHibernate的关系:
这里是ProjectDependencies映射类:
public class ProjectDependencyMap
{
public ProjectDependencyMap()
{
References(x => x.Project).Not.Nullable().Fetch.Join();
References(x =>.DependencyProject).Not.Nullable().Column("DependencyProjectId").Fetch.Join();
}
}
,这里是该项目映射文件:
public class ProjectMap
{
public ProjectMap()
{
HasMany(x => x.ProjectDependencies).AsBag().Inverse().Cascade.AllDeleteOrphan().Fetch.Select().BatchSize(80);
HasMany(x => x.ProjectDependentOf).KeyColumn("DependentProjectId").AsBag().Inverse().Cascade.AllDeleteOrphan().Fetch.Select().BatchSize(80);
}
}
通常能正常工作,但有时当我去删除项目使用:
var project = Model.GetProject(id);
Repository.Delete(project);
Repository.Commit()
我得到这个错误:
删除的对象将被重新保存通过级联(移除协会删除的对象)ProjectDependency#324]
有人能帮助澄清这一问题就在这里,如果什么方式我使用上面的映射是不正确的
Try:'References(x => x.Project).Not.Nullable()。Fetch.Join()。LazyLoad();' – George
@George =这似乎没有区别 – leora