AutoMapping構成でNHibernate/FluentNhibernateを使用していますが、いくつかの関係の外部キーに問題があります。特に、ナビゲーションプロパティ名がそれが指しているタイプの名前と異なる場合:
public class Country
{
public virtual string Code { get; set; }
public virtual string Name { get; set; }
public virtual Currency DefaultCurrency { get; set; }
}
public class Currency
{
public virtual string Code { get; set; }
public virtual decimal Rate { get; set; }
public virtual IList<Country> Countries { get; set; }
}
ナビゲーションプロパティの名前が名前タイプDefaultCurrency
と異なるCountryエンティティの場合。Currency
NHibernateの自動マッピングは、Countryテーブルに次の外部キーがあると推測します。
DefaultCurrency_id
:の関係に対応Country.Currency
Currency_id
:の関係に対応Currency.Countries
Currency.Countries
関係をキーで表現できることを自動マッピングに伝える方法DefaultCurrency_id
。その結果、Countryテーブルに対してのみ1つのキーが外部になります。
DefaultCurrency_id
:との関係にCountry.Currency
対応Currency.Countries