有没有办法嵌入一个类元素到一个类元素在实体框架?



这是我的代码:

namespace MyProject.Models.Database
{
public class Recipe
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; }
public string? Description { get; set; }
public string? Picture { get; set; }
public int Worktime { get; set; }
public int? Cooktime { get; set; }
public int Difficulty { get; set; }
public int Portions { get; set; }
public List<Ingredient> Ingredients { get; set; }
}
public class Ingredient
{
public Guid Id { get; set; } = Guid.NewGuid();
public Guid IngredientId { get; set; }
public int Qty { get; set; }
public string QtyUnit { get; set; }
}
}

我想要"Recipe"包含"成分"类型的许多元素。我读过一些关于一对一和多对多的东西,但我就是不明白…

任何想法?thx

一个食谱可以包含多种食材,一种食材也可以出现在许多食谱中。这是一个多对多关系。

您需要做的是创建一个包含Id,RecipeId,IngredientId的新类。将该类命名为RecipeIngredient。在db上下文中创建DbSet<RecipeIngredient>时,将表命名为RecipesIngredients

RecipeIngredient中属性的数据类型应该是什么

Id属性将是主键,您可以决定数据类型。

RecipeId将是Recipe的外键,因此它需要与Recipe的主键(在您的示例中是Guid)具有相同的数据类型。

IngredientId将是Ingredient的外键,因此在您的示例中数据类型将再次为Guid

请注意,您可以创建一个组合键,而不是将Id放在RecipeIngredient中。

你应该什么时候做?→

我建议你学习不同的关系,以及如何使用c#和实体框架核心应用它们->

祝你学习顺利!当你觉得你不理解一个话题时,不要担心,也不要气馁,你只是需要更多的经验。继续保持良好的工作:)

相关内容

最新更新