J'utilise IQueryable > pour créer des requêtes de traitement par lots. J'ai utilisé les vues avec succès pour extraire des informations afin que le IQueryable < puisse le trouver, mais dans ce cas, je ne peux pas déterminer comment mapper une vue, car cela dépend des propriétés plutôt que de l'ID de l'entité.NHibernate mappage à l'entité à l'aide de propriétés communes
Dire que j'ai cette entité et la cartographie:
public class Calculation
{
public virtual int Id { get; set; }
public virtual Organisation Organisation { get; set; }
public virtual Charge Charge { get; set; }
public virtual TransactionTotal TransactionTotal { get; set; }
}
public class CalculationMap : ClassMap<Calculation>
{
public CalculationMap()
{
Id(x => x.Id).GeneratedBy.Identity();
References(x => x.Organisation).Not.Nullable().UniqueKey("OC");
References(x => x.Charge).Not.Nullable().UniqueKey("OC");
}
Ceci est la classe que je dois obtenir là-bas: J'utilise en vue de me donner le montant total par l'organisation et de charge:
public class TransactionTotal
{
public virtual int Id { get; set; }
public virtual Organisation Organisation { get; set; }
public virtual Charge Charge { get; set; }
public virtual decimal Amount { get; set; }
}
public class TransactionTotalMap : ClassMap<TransactionTotal>
{
public TransactionTotalMap()
{
Id(x => x.Id).GeneratedBy.Identity();
Table("TransactionTotalsView");
References(x => x.Charge).Not.Nullable();
References(x => x.Organisation).Not.Nullable();
Map(x => x.Amount).Precision(15).Scale(2).Not.Nullable();
}
}
Autres endroits J'ai utilisé des vues J'ai utilisé avec succès des mappages comme HasOne(x => x.TransactionTotal);
mais dans ce cas je dois dire à Nhibernate d'utiliser les propriétés Organization et Charge comme clé.
Est-ce encore possible? Si oui, comment mapper la classe TransactionTotal à la classe Calculation?
Edit: J'ai utilisé CompositeId dans TransactionTotalMap comme suggéré par @ David:
CompositeId().KeyProperty(x => x.Organisation.Id).KeyProperty(x => x.Charge.Id);
Je suis toujours bloqué sur ce qu'il faut mettre dans le CalculationMap bien.
Merci. Savez-vous ce que je devrais mettre dans la CalculationMap pour correspondre à cela? – stuartd
Qu'est-ce que c'est en ce moment? –
Rien encore .. :( – stuartd