Nhibernate Hibernate获取,但无法使用';HasManyToMany';
我有一个资源实体,它与一个文件实体有多对多关系,这样一个资源可以引用多个文件,而一个文件可以引用多个资源 现在,我希望在保存资源时,保存会从资源级联到文件实体——当我加载资源实体时,它会按预期加载文件实体。它不会将资源实体引用保存到文件 有人知道FNH映射有什么问题吗 具有主键的数据库表包括: 资源-Id 资源文件-资源ID,文件ID 文件-Id FNH映射代码为:Nhibernate Hibernate获取,但无法使用';HasManyToMany';,nhibernate,fluent-nhibernate,mapping,many-to-many,Nhibernate,Fluent Nhibernate,Mapping,Many To Many,我有一个资源实体,它与一个文件实体有多对多关系,这样一个资源可以引用多个文件,而一个文件可以引用多个资源 现在,我希望在保存资源时,保存会从资源级联到文件实体——当我加载资源实体时,它会按预期加载文件实体。它不会将资源实体引用保存到文件 有人知道FNH映射有什么问题吗 具有主键的数据库表包括: 资源-Id 资源文件-资源ID,文件ID 文件-Id FNH映射代码为: public sealed class ResourceMap : ClassMap<Resource>, IMap
public sealed class ResourceMap : ClassMap<Resource>, IMap
{
public ResourceMap()
{
Table("Resources");
Not.LazyLoad();
Id(x => x.Id);
HasManyToMany<File>(x => x.Files)
.AsBag()
.Inverse()
.Cascade.All()
.ParentKeyColumn("ResourceId")
.ChildKeyColumn("FileId")
.Table("ResourceFiles");
}
}
public sealed class FileMap : ClassMap<File>, IMap
{
public FileMap()
{
Table("Files");
Not.LazyLoad();
Id(x => x.Id);
HasManyToMany<Resource>(x => x.Resources)
.Not.LazyLoad()
.AsBag()
.Cascade.All()
.ParentKeyColumn("FileId")
.ChildKeyColumn("ResourceId")
.Table("ResourceFiles");
}
}
公共密封类资源映射:类映射,IMap
{
公共资源地图()
{
表(“资源”);
不是。懒汉();
Id(x=>x.Id);
HasManyToMany(x=>x.Files)
.AsBag()
.Inverse()
.Cascade.All()
.ParentKeyColumn(“资源ID”)
.ChildKeyColumn(“文件ID”)
.表格(“资源文件”);
}
}
公共密封类文件映射:类映射,IMap
{
公共文件映射()
{
表(“文件”);
不是。懒汉();
Id(x=>x.Id);
HasManyToMany(x=>x.Resources)
.Not.LazyLoad()
.AsBag()
.Cascade.All()
.ParentKeyColumn(“文件ID”)
.ChildKeyColumn(“资源ID”)
.表格(“资源文件”);
}
}
干杯
在资源类映射中,指定了Inverse(),这意味着资源类希望文件类进行保存,这就是为什么更改不会从资源类流向文件类。如果资源类负责保存,则需要在文件映射类上指定Inverse()