我想为餐厅制作应用程序。这是关于计算配方的。
我有域类:-成分-食谱-RecipeItem
配方有RecipeItem 列表。
RecipeItem 可以是成分,也可以是配方。
所以我正在使用具有 2 个属性(Id、Name)的接口 IItem。如果我在课堂上使用接口,则数据库生成器会忽略此字段。
在这里查看我的课程:
public class Ingredient : IItem
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
public class Recipe : IItem
{
public int Id { get; set; }
public string Name { get; set; }
public List<RecipeItem> RecipeItems { get; set; }
}
public class RecipeItem
{
public int Id { get; set; }
public IItem Item { get; set; }
public double Quantity { get; set; }
}
CodeFirst 自动为我生成带有上述表格的数据库。
我想让数据库表 RecipeItem 看起来像:
> Id
> Quantity
> Recipe_Id - FK of Recipe ID
> RecipePointer - Nullable FK of specific Recipe
> IngredientPointer - Nullable FK of specific Ingredient
但只有:
> Id
> Quantity
> Recipe_Id - FK of Recipe ID
如果我将例如成分放入 RecipeItem,则成分的 ID 将插入到成分指针中。
我想使用 FLUENT API 进行映射,但我不知道如何。
我不知道我想要的是否可能,或者是否有更好的方法来解决我的问题。
我已经在 Pluralsight 上观看了 CodeFirst 视频,并在论坛中浏览,但找不到答案。
感谢您的任何帮助。