如何解决"多重性在角色"中无效。错误?

时间:2015-09-02 11:45:55

标签: c# entity-framework

我有以下型号:

public class Retailer : Entity
{
    public string Name { get; set; }
    public string Address { get; set; }
    public virtual ICollection<Product> Products { get; set; }
    public virtual ICollection<Customer> Customers { get; set; }
}

public class Product : Entity
{
    public string Name { get; set; }
    public string Description { get; set; }
    public string ECommerceUrl { get; set; }
    public string ImageUrl { get; set; }
    public Retailer Retailer { get; set; }

    public ICollection<Category> Categories { get; set; }
}

我尝试定义一个1到(0或多个)关系,零售商可以拥有0个或多个具有以下内容的产品:

modelBuilder.Entity<Product>()
    .HasRequired(r => r.Retailer)
    .WithMany(p => p.Products)
    .HasForeignKey(p => p.Id); // Id is defined in the base class

我收到了错误

  

Product_Retailer_Source ::多重性在Role&ProductSReriler_Source&#39;在关系&#39; Product_Retailer&#39;。由于“从属角色”是指关键属性,因此“从属角色”的多重性的上限必须为“&#39; 1”。

我如何定义关系有什么问题?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

试试这个

public class Product : Entity
{
    public Retailer Retailer { get; set; }
    public int RetailerId { get; set; }
}

使用此配置(您没有定义外键来存储RetailerId与产品)

modelBuilder.Entity<Product>()
    .HasRequired(r => r.Retailer)
    .WithMany(p => p.Products)
    .HasForeignKey(p => p.RetailerId);