我試圖添加一些使用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。您必須爲該場景尋找「複合鍵」。 –