在数据库中保存一个有点复杂关系的模型时,我遇到了一些麻烦。
类定义是:
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 :(得分:2)
经过多次尝试,我找到了解决方案。将申请人定义更改为:
public class Applicant
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public virtual ICollection<MonthlyIncome> Incomes { get; set; }
}
就是我所需要的一切