Je sais que ce code a un peu d'odeur mais il convient à ce projet dans cette implémentation spécifique.Fluid NHibernate Mapping Left Join
public class InvestmentAdvisorMap: ClassMap<InvestmentAdvisor>
{
public InvestmentAdvisorMap()
{
Id(x => x.EmployeeID).GeneratedBy.Assigned()
.Access.CamelCaseField(Prefix.Underscore);
Not.LazyLoad();
Table("Employee");
//need mapping to tierName here???? that links to join table
}
}
public class InvestmentAdvisor
{
private readonly Guid _employeeID;
private string _tierName;
public Tier Tier
{
get
{
switch (_tierName)
{
case "<$100K":
return Tier.LessThan100K;
case "$100K+":
return Tier.MoreThan100K;
case "$240K+":
return Tier.MoreThan240K;
case "$400K+":
return Tier.MoreThan400K;
case "$600K+":
return Tier.MoreThan600K;
case "$1M+":
return Tier.MoreThan1M;
default:
return Tier.LessThan100K;
}
}
}
public string TierName
{
get {
return _tierName;
}
}
public Guid EmployeeID
{
get { return _employeeID; }
}
}
}
j'ai une table de jointure où il y a une relation un à un sur niveau où qui a employeeID et TierName, je ne peux pas pour la vie de moi figuire comment faire la classe de cartographie, fondamentalement une entité composite, mais ne trouve pas de grands exemples
Je envisagerais sérieusement de changer le design. Pourquoi ne pas laisser InvestmentAdvisor conserver une référence à un objet Tier et générer la chaîne de nom à partir d'un bloc de commutation? – UpTheCreek
Je pense que tu as raison, je n'aime vraiment pas à quoi cela ressemble en ce moment, surtout quand j'essaie de l'expliquer. Mon problème est que je n'ai vraiment aucun objet Tier persisté, c'est simplement une clé basée sur une chaîne qui retourne une classe statique. Mais encore une fois comme je l'explique tout commence à sentir encore pire –