[英]FluentNhibernate mapping of two tables oneToMany using unique instea of primary key in mapping
我正在用C#編寫桌面項目。 我正在使用Nhibernate與數據庫進行通信。 此外,我使用FluentNhibernate進行模型映射,但我陷入了映射的某些部分。 這是ProductMap中的My mapping Class
松動地圖
public LosingMap()
{
Id(x => x.id);
Map(x => x.reason);
Map(x => x.quantity);
Map(x => x.lose_sum);
Map(x => x.rate);
Map(x => x.deleted);
Map(x => x.create_date);
Map(x => x.update_date);
References(x => x.currency).Column("CurrencyCode");
Table("Loosing");
}
}
這是CurrencyMap
CurrencyMap
public CurrencyMap()
{
Id(x => x.id);
Map(x => x.code).UniqueKey("currency_code");
Map(x => x.name);
Map(x => x.shname);
Map(x => x.symbol);
Map(x => x.deleted);
HasMany(x => x.Losings).Cascade.All();
Table("currency");
}
}
這里是我在我的貨幣表中有一個主鍵和一個唯一鍵我怎么能在我的LoosingMap類中引用我的唯一而不是主鍵???
使用KeyColumn
在CurrencyMap
使用:
public CurrencyMap()
{
Map(x => x.id); // Optional
KeyColumn(x => x.code)
Map(x => x.name);
Map(x => x.shname);
Map(x => x.symbol);
Map(x => x.deleted);
HasMany(x => x.Losings).Cascade.All();
Table("currency");
}
}
根據FluentNHibernate“HasMany / one-to-many”文檔 ,“與引用一樣,外鍵默認為Author_id,您可以使用KeyColumn方法覆蓋它或使用約定更改默認行為。”,所以你也可以使用:
HasMany(x => x.Losings).KeyColumn(x => x. CurrencyCode).Cascade.All();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.