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エンティティの場合。CurrencyNHibernateの自動マッピングは、Countryテーブルに次の外部キーがあると推測します。
DefaultCurrency_id:の関係に対応Country.CurrencyCurrency_id:の関係に対応Currency.Countries
Currency.Countries関係をキーで表現できることを自動マッピングに伝える方法DefaultCurrency_id。その結果、Countryテーブルに対してのみ1つのキーが外部になります。
DefaultCurrency_id:との関係にCountry.Currency対応Currency.Countries