У меня возникли проблемы с созданием отношения 1 к многим в моем классе продуктов классу ProductSpecification, который имеет два первичных ключа ProductId, SpecificationId. В классе продуктов не всегда есть класс ProductSpecification. Никто не может решить, как исправить мою проблему. Я получаю сообщение об ошибке с верхним. 1. Я новичок в EF и сначала делаю код, поэтому, если вы знаете, что делать, пожалуйста, оставьте подробное объяснение спасибо.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; }
}
DataContext:
modelBuilder.Entity<ProductSpecification>().HasKey(x => new { x.ProductId, x.SpecificationId });
modelBuilder.Entity<Specification>().HasOptional(x => x.ProductSpecs)
.WithMany().HasForeignKey(x => x.SpecificationId);
Я думаю, вам нужно выбирать между свободно и стилями аннотаций ... Я имею в виду, я не думаю, что вы можете использовать * оба * для определения тех же вещей .. –
Получаете ли вы ту же ошибку, если вы удалите ' Код моделиBuilder'? –
Если я удаляю аннотации данных, я получаю ту же ошибку. Колличество разностей – ONYX