我收到以下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/

10-13 06:47