我是 .NET 和 Entity Framework 的初学者,只是一个关于映射的问题,假设我们有 Recipes 类,其属性是 Ingredient,所以我们有两个类 Recipes 和 Ingredient。
我们通过以下方式进行映射:
public DbSet<Recipe> Recipes { get; set; }
因此 EF 将检查 Recipe 的属性并创建一个 Recipes 表,最终它将找到 Ingredient 作为属性,因此它将创建一个 Ingredient 表。到目前为止它似乎很简单,但这是一个非常简单的结构,所以我们知道 Recipes 包含 Ingredient,所以我们不这样做
public DbSet<Recipe> Recipes { get; set; }
public DbSet<Ingredient> Ingredient { get; set; } //duplicated
但想象一下,在一个复杂的应用程序中,我们可能有数百个类,所以当我们这样做时
public DbSet<T> T{ get; set; }
public DbSet<U> U{ get; set; }
public DbSet<V> V{ get; set; }
...
T 可能包含 U 作为属性,而 U 可能包含 V 作为属性,因此我们只需要编写如下代码:
public DbSet<T> T{ get; set; }
所以我很困惑,我们应该在 DbContext 中包含所有类吗?如果我们这样做,将会有重复的声明,但如果我们不这样做,我们可能会丢失映射。所以我想我们只是为所有类做 tat 并期望 EF 足够聪明以忽略重复的东西?
慕姐4208626
HUX布斯
红颜莎娜
相关分类