实体框架上下文拾取比上下文中映射的实体更多的实体

时间:2015-03-17 13:57:42

标签: c# entity-framework

当使用只有几个实体引用的Context类时,Entity Framework似乎为其恶意用途引入了许多其他实体引用,这对我来说是个问题。 (我得到的错误就像“实体这样,因此不能使用与实体相同的表,因为它们不在同一类型层次结构中或其他任何”。)我的问题是关于这个特定的错误,但为什么实体框架在我的上下文之外引入实体。

我有一个Entity Framework DbContext子类,只有几个引用,如下所示:

public class FruitContext : DbContext
{
  public DbSet<Apple> Apples { get; set; }
  public DbSet<Orange> Oranges { get; set; }
}

我正在使用Linqpad来查询这个上下文,当我展开FruitContext节点时,它向我显示它按预期包含“苹果”和“橘子”,但它也向我显示“Beans”和“Asparagi”它们根本不在FruitContext中,并且不在Apple或Orange的类型层次结构中。为什么EF会吸引这些实体?现在可能是我在存储库或其他东西中引用这些Beans和Asparagi实体的情况,但EF会关心这个吗?有没有办法告诉EF一个特定的上下文,它应该只关心上下文中的实际内容,并排除它从其他地方抓取的任何实体?

编辑1 :这是Orange类:

[Table("FOOD")]
public class Orange
{
  public Int32 Juiciness { get; set; }
}

这是因为某种原因而被拉入的芦笋类,但为什么呢?它与Orange共享同一个表,但为什么EF需要关注,因为它不在上下文中而且没有与Orange相同的类型层次结构嵌套?

[Table("FOOD")]
public class Asparagus
{
  public String SomeVegetableField { get; set; }
}

0 个答案:

没有答案