このコードには匂いがありますが、この特定の実装ではこのプロジェクトに適しています。私は社員コードとTierNameを持っている層で1対1の関係がある場合、テーブルに参加していFluent 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; }
}
}
}
、私は私の人生のためにカントマッピングクラスを行う方法をfiguire、基本的に複合エンティティですが、偉大な例は見つかりません
私は真剣にデザインを変更することを検討したいと思います。 InvestmentAdvisorにTierオブジェクトへの参照を保持させ、スイッチブロックから名前文字列を生成させてみませんか? – UpTheCreek
私はあなたが正しいと思っています。私は本当に今の様子が好きではありません。私の問題は、永続的なTierオブジェクトがないことです。静的クラスを返す文字列に基づくKeyです。しかし、もう一度私が説明するように、すべてがさらに悪化する臭いが始まる –