我试图添加一些使用EntityFramework的实体。 我需要同样的模型作为图像 我创建了两个类:属性'Dish_ID'不能用作实体上的关键属性
public class PriceOfDish
{
[Key]
public virtual List<Dish> Dish_ID { get; set; }
[Key]
public DateTime DateTime { get; set; }
public decimal Price { get; set; }
}
public class Dish
{
[Key]
public int Dish_ID { get; set; }
public string DishName { get; set; }
public string Description { get; set; }
public virtual FoodCategory FoodCategory_ID { get; set; }
public virtual Feature Feature_ID { get; set; }
public virtual ICollection<OrderedDishes> Orders { get; set; }
}
使用FluentAPI试图设置主键:
builder.Entity<PriceOfDish>()
.HasKey(t => new {t.Dish_ID, t.DateTime});
在更新DB我得到错误信息:“该物业'Dish_ID'不能用作实体'testFOef.PriceOfDish'的关键属性,因为属性类型不是有效的键类型,只有标量类型,字符串和字节[]是支持的键类型。“ 但是为什么?你能解释一下吗?感谢您的任何帮助
注意到错误提到'PriceOfDish'类,而不是'Dish'类。您不能简单地使用列表作为ID。您必须为该场景寻找“复合键”。 –