2つのエンティティ間のオプション:必須関係を設定しようとしています。Fund
とRedemptionFee
です。ファンドには償還手数料がある場合とない場合がありますが、償還手数料には資金が必要です。モデルは、私は問題は程度があるのでFund
対象に、FundId
は私の主キーであり、この方法で滞在する必要があるという事実であると思われるもの基本的にこの(非関連のプロパティは省略)エンティティフレームワーク - オプション構成:異なる外部キーで必要です
public class Fund
{
public int FundId {get; set;}
public string FundCode {get; set;}
public virtual RedemptionFee RedemptionFee {get; set;}
}
public class RedemptionFee
{
public string FundCode {get; set;}
public virtual Fund Fund {get; set;}
}
ですFund
がFundId
を介して関連している6または7の他のエンティティ。 RedemptionFee
には、FundCode
が主キーです。 FundCode
もFund
オブジェクトの一部ですが、主キーではありません。
私は(基金EntityTypeConfiguration
オブジェクトで)このような関係を設定しよう
HasOptional(f=>f.RedemptionFee).WithRequired(f=>f.Fund);
生成されたSQLは、彼らの主キーのそれぞれにRedemptionFee
のテーブルに基金のテーブルに参加しようとしています明らかに動作しません。生成されたSQLがFundCode
を介して2つのテーブルを結合するように指定する必要があります。
これを行う方法はありますか?それはかなり基本的なSQLですが、私は何かが欠けていない限り、EFでは不可能と思われます。EFは従属関係の外部キーをプライマリの主キーと同じにする必要があるようです。基本的には、関係を定義するために使用する任意の列を選択します。