Si tout fonctionne bien avec le discriminateur de base de la cartographie. Je peux interagir directement avec les entités A et B sans aucun problème.
public class BaseType {}
public class EntityA : BaseType {}
public class EntityB : BaseType {}
Cette cartes sans drame dans le BaseType cartographie
DiscriminateSubClassesOnColumn<string>("Type")
.SubClass<BaseType>("A", m => { })
.SubClass<BaseType>("B", m => { });
Le problème se produit lorsque: dans un agrégat nous voulons carte des collections pour chaque sous-classe
À l'aide de la cartographie comme ci-dessous
public class AggregateMap: BaseMap<Aggregate>
{
public AggregateMap()
{
HasMany<EntityA>(x => x.ACollection).AsSet().Cascade.All();
HasMany<EntityB>(x => x.BCollection).AsSet().Cascade.All();
}
}
Bien sûr, ces arent plein mappages mais le montant minimum pour un décrivez ce que je cherche. Les éléments ajoutés ACollection et BCollection sont conservées correctement par le biais de la cascade lorsque le regroupement est sauvé. Toutefois, lorsque le total est extrait, il ya confusion sur le type de discrimination.
J'ai couru à travers tant de différentes solutions possibles, je ne sais plus ce qui n'a pas de travail. J'ai l'impression que je ne devrait pas fournir une clause where sur les collections, mais les choses ne sont tout simplement pas de travail pour moi.
Des indices serait appréciée.