继承的类型在选择的时间实体框架5中导致异常

时间:2013-04-17 19:59:31

标签: c# entity-framework

我首先使用EF5代码,其类型如下:

    public class Region
    {
      public int Id { get; set; }
      //...
    }

    public class Destination : Region
    {
      public virtual Origine Origine { get; set; }
      //...
    }

    public class Origine : Region
    {
      public virtual IList<Destination> Destinations { get; set; }
      //...
    }

我的EF上下文类型:

public class JobAndPopulationContext : DbContext
{
    public DbSet<Region> Regions { get; set; }
}

我想通过这样一个简单的列表来选择所有地区:

context.Regions.ToList();

我收到了这个奇怪的错误消息:

关系管理器是使用类型为“JobAndMigration.Classes.Origine”的所有者定义的,该类型与指定关系“JobAndMigration”中源角色“Origine_Destinations_Target”的类型“JobAndMigration.Classes.Destination”不兼容。 Repository.Origine_Destinations'。

该错误是什么意思?
我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:0)

查看不同的继承类型here

对于TPT,请考虑将您的上下文更改为以下内容;

public class JobAndPopulationContext : DbContext
{
  public DbSet<Destination> Destinations { get; set; }
  public DbSet<Origins> Origin { get; set; }  
}