我无法在我的 Products 类与 ProductSpecification 类上创建一对多关系,该类具有两个主键 ProductId、SpecificationId。Products 类并不总是有 ProductSpecification 类有没有人不知道如何解决我的问题我遇到了一个与上限 1 有关的错误。我是 EF 的新手,首先编写代码,所以如果你知道该怎么做,请留下一个详细解释谢谢。
课程:
public class ProductSpecification
{
[Key]
[Column(Order = 1)]
public long ProductId { get; set; }
[Key]
[Column(Order = 2)]
public long SpecificationId { get; set; }
[ForeignKey("ProductId")]
public virtual Product Product { get; set; }
[ForeignKey("SpecificationId")]
public virtual Specification Specification { get; set; }
}
public class Specification
{
[Key]
public long SpecificationId { get; set; }
[Required(ErrorMessage = "Please enter a product specification name.")]
[DataType(DataType.Text)]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter a product specification value.")]
[DataType(DataType.Text)]
public string Value { get; set; }
[ForeignKey("SpecificationId")]
public virtual ICollection<ProductSpecification> ProductSpecs { get; set; }
}
数据上下文:
modelBuilder.Entity<ProductSpecification>().HasKey(x => new { x.ProductId, x.SpecificationId });
modelBuilder.Entity<Specification>().HasOptional(x => x.ProductSpecs)
.WithMany().HasForeignKey(x => x.SpecificationId);