我将 EF5 代码优先与实体类一起使用,如下所示:
public class Base {
public int Id { get; set; }
}
public class Derived : Base { // there are other derived types as well
}
然后我配置派生实体如下:
var config = new EntityTypeConfiguration<Base>();
config.Map<Derived>(m =>
{
m.MapInheritedProperties();
m.ToTable("derived");
});
DbModelBuilder modelBuilder = ...
modelBuilder.Configurations.Add(config);
然后在我的应用程序中调用:
new MyDbContext().Set<Derived>().First();
此调用的预期行为是什么?
奇怪的是,对于以完全相同的方式配置的层次结构,我似乎得到了不一致的行为。有时这会失败,因为它尝试查询“dbo.Base”,有时它正确查询“dbo.Derived”。