5

少し複雑な関係のモデルをデータベースに保存するときにいくつか問題があります。EF関係1対2

クラスのUMLは、次のとおりです。 enter image description here

のクラス定義は以下のとおりです。

public abstract class EntityBase 
{ 
    public virtual Guid Id { get; set; } 
} 

public class LoanRequest : EntityBase 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public virtual Applicant Applicant1 { get; set; } 
    public virtual Applicant Applicant2 { get; set; } 
} 

public class Applicant 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public Guid LoanRequestId { get; set; } 
    [ForeignKey("LoanRequestId")] 
    public virtual LoanRequest LoanRequest { get; set; } 

    public virtual ICollection<MonthlyIncome> Incomes { get; set; } 
} 

public class MonthlyIncome 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public Guid ApplicantId { get; set; } 
    [ForeignKey("ApplicantId")] 
    public virtual Applicant Applicant { get; set; }  
} 

私は、移行を実行することができるよ、データベースにフレームワークによって作成されたテーブルと列を探して私にとってうまくいくようです。しかし、例外を保存すると例外が発生します。例外は次のとおりです。

依存操作の有効な順序を判断できません。外部キーの制約、モデル要件、ストア生成値のために依存関係が存在する可能性があります。

私はインターネット上のソリューションを探していましたが、私の問題がどこにないか分かりません。助言がありますか?ありがとう!

+0

が必要でしたか?保存方法はどのように見えますか? – janhartmann

答えて

2

いくつかの試行の後、私は解決策を見つけることができました。申請者の定義を変更する:

public class Applicant 
{ 
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 

    public virtual ICollection<MonthlyIncome> Incomes { get; set; } 
} 

すると、すべてのは、私はあなたが保存しようとしている何