У меня проблема с созданием структуры моей базы данных. Например у меня есть эти 3 классаСоздайте ключ из 3 столбцов, включая отношение к другой таблице (сначала код)
public class Product
{
[Key, Column(Order = 1)]
[Required]
public string ItemNo { get; set; }
[Key, Column(Order = 2)]
[Required]
public string VariantCode { get; set; }
public virtual List<ProductAttribute> Attributes { get; set; }
public Product()
{
Attributes = new List<ProductAttribute>();
}
}
public class ProductAttribute
{
[Key]
[Required]
public string FieldName { get; set; }
public string FieldValue { get; set; }
public virtual Product Item { get; set; }
}
public class DbContext : DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<ProductAttribute> Attributes { get; set; }
}
Первичный ключ таблицы Product является ITEMNO + VariantCode и будет создана правильно. Вторая таблица ProductAttribute должна иметь ключ ItemNo + VariantCode + FieldName, но с кодом выше EF6 создает первичный ключ FieldName и внешний ключ ItemNo + VariantCode. Я пробовал несколько вещей, включая установку атрибута [Key] в свойство Item в классе ProductAttribute, но это не работает. Есть идеи, как это сделать?