我有幾個對象。爲什麼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