J'ai une entité Resource qui a une relation many-to-many avec une entité File, de sorte qu'une ressource peut référencer plusieurs fichiers et un fichier peut référencer plusieurs ressources.Fluid nHhibernate obtient mais ne parvient pas à enregistrer avec 'HasManyToMany'
Maintenant, je m'attends à ce que la sauvegarde descende de la ressource vers les entités de fichier lorsque la ressource est sauvegardée - Lorsque je charge une entité de ressource, elle charge les entités de fichier comme prévu. Il n'enregistre pas les références d'entité de ressource au fichier.
Est-ce que quelqu'un sait ce qui ne va pas avec le mappage FNH?
Les tables de base de données avec les clés primaires sont:
Ressources - Id
ResourceFiles - resourceID, FileId
Fichiers - Id
Le code de mappage FNH est :
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");
}
}
Vive
Awkward