EF关系一对二

EF relation one-to-two

我在数据库中保存关系有点复杂的模型时遇到了一些麻烦。

类 的 UML 是:

类定义是:

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; }    
}

我能够 运行 迁移并查看数据库,框架创建的表和列对我来说似乎没问题。但是,保存时发生异常。例外情况是:

Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values

我一直在网上寻找解决方案,但我看不出我的问题出在哪里。有什么建议么?谢谢!

经过几次尝试,我找到了解决办法。将申请人定义更改为:

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

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

这就是我所需要的