我有以下型号:
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”。
我如何定义关系有什么问题?我该如何解决这个问题?
答案 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);