我知道這個代碼有一點氣味,但它適合這個項目在這個特定的實現。流利的NHibernate映射左連接
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; }
}
}
}
我有一個連接表,其中有在層級擁有僱員和TierName那裏,我不能爲我的生活figuire如何做映射類一對一的關係,基本上是一個複合實體,但沒有找到很好的例子
我會認真考慮改變設計。爲什麼不讓InvestmentAdvisor持有對Tier對象的引用,並從交換機塊中生成名稱字符串? – UpTheCreek
我認爲你是對的,我真的不喜歡這現在看起來如何,特別是當我試圖解釋它。我的問題是我真的沒有堅持的Tier對象,它只是一個基於返回靜態類的字符串的Key。但再一次,因爲我解釋一切開始聞更糟 –