Nhibernate Hibernate获取,但无法使用';HasManyToMany';

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

我有一个资源实体,它与一个文件实体有多对多关系,这样一个资源可以引用多个文件,而一个文件可以引用多个资源

现在,我希望在保存资源时,保存会从资源级联到文件实体——当我加载资源实体时,它会按预期加载文件实体。它不会将资源实体引用保存到文件

有人知道FNH映射有什么问题吗

具有主键的数据库表包括:

资源-Id

资源文件-资源ID,文件ID

文件-Id

FNH映射代码为:

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()