J'ai deux entités (Job et Location) qui sont connectées via une relation many-to-many. Récemment, nous avons mis en place une logique de suppression douce sur l'entité de localisation, puis ajouté un filtre sur la cartographie comme l'emploi ceci:NHibernate - Filtré La relation ManyToMany renvoie des enregistrements NULL
HasManyToMany(x => x.Locations)
.Table("JobLocation")
.ParentKeyColumn("JobId")
.ChildKeyColumn("LocationId")
.ApplyChildFilter<ExcludeDeletedFilter>("IsDeleted = :condition")
.Cascade.None();
La requête pour les nombreux à-plusieurs ressemble à ce
select ...
from Job job
left outer join JobLocation jl
on jl.JobId = job.Id
left outer join Location loc
on loc.Id = jl.LocationId and IsDeleted = 0
Le problème est que maintenant, lors de l'extraction d'un travail ayant des emplacements supprimés, la collection Locations sur l'entité de travail contient une entrée null pour chaque emplacement supprimé.
Quelle est la meilleure façon de gérer ces enregistrements de suppression logicielle lorsqu'ils sont récupérés via une relation plusieurs-à-plusieurs. (pour un à plusieurs, ce filtre fait du bon travail)
Quelles sont les autres solutions de rechange que je devrais envisager?
Quel type de collection? –
Les emplacements sont définis comme des emplacements IList publics virtuels Emplacements {get; ensemble; } –