我收到以下EF错误:
执行时似乎抛出了这个
base.OnModelCreating(modelBuilder).
这是我的模特。 FWIW,Agent
继承自User
类。
public class Agent
{
public int AgentId { get; set; }
public int PrimaryAddressId { get; set; }
public Address PrimaryAddress { get; set; }
public int? MailingAddressId { get; set; }
public Address MailingAddress { get; set; }
}
public class Address
{
public int AddressId { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
}
我相信这个问题与
Agent
具有不止一种Address
类型的属性有关,也可能是因为其中之一是可为空的。我已经做了一些搜索,但似乎找不到答案。我假设将
Agent
模型更改为具有List<Address>
类型的单个属性,该属性将使用UserAddresses
查找表可以解决该错误,但我希望保留当前模型而不是。如何解决此错误?提前致谢。
最佳答案
如果您的配置和模型不匹配,则会发生这种情况。
假设在您的数据库配置中,您有如下规则:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Agent>().HasRequired(x=>x.MailingAddress);
//..
但是在您的模型中,您说MailingAddress是可选的:
public int? MailingAddressId { get; set; }
事实并非如此。
关于c# - 多重性与参照约束冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32459263/