如何解决使用EF核心为该关系错误配置主键或一组兼容的外键属性
我不确定为什么会出现此错误: System.InvalidOperationException:具有外键属性{'InsuredID':string}的'从'Insured'到'Quote.Insureds'的关系不能以主键{'InsuredID':string,'ProducerID':string}为目标,因为它不是兼容。为此关系配置一个主键或一组兼容的外键属性。'
我正在尝试在Quote模型中配置两个密钥,一个用于我的保险模型,另一个用于我的生产者。我试图只拥有一个键,然后只使用外键,但这没用。
public class Producer
{
[Key]
public string ProducerID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public class Insured
{
[Key]
public string InsuredID { get; set; }
public string NamedInsured { get; set; }
public string Address1 {get; set;}
public class Quote
{
public string InsuredID { get; set; }
public string ProducerID { get; set; }
[ForeignKey("ProducerID")]
public IList<Producer> Producers { get; set; }
[ForeignKey("InsuredID")]
public IList<Insured> Insureds { get; set; }
在我的数据库环境中:
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Quote>().HasKey(q => new { q.InsuredID,q.ProducerID});
解决方法
不能用键引用数组 它需要是一个对象而不是一个集合。
public class Quote
{
public string InsuredID { get; set; }
public string ProducerID { get; set; }
[ForeignKey("ProducerID")]
public Producer Producer { get; set; }
[ForeignKey("InsuredID")]
public Insured Insured { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。