我正在使用OData,Breeze和Code First Entity Framework。我最近从ODataConventionModelBuilder切换到EdmBuilder并遇到了一些问题。
我有两个类“Soldier”和“Dependent”,它们继承自抽象类“Person”。这些实体在模式中显示为 EntityTypes ,但只有抽象类“Person”出现在 EntityContainer 中。有没有办法将EDM配置为忽略抽象类,而是让访问继承的类?或者至少让我访问这三个?
在我的DBContext中,我有:
...
public virtual DbSet<Soldier> Soldiers { get; set; }
public virtual DbSet<Dependent> Dependents { get; set; }
...
每个都有自己的“EntityTypeConfiguration”:
public class SoldierConfiguration : EntityTypeConfiguration<Soldier>
{
public SoldierConfiguration()
{
ToTable("Soldiers");
...
}
}
产生的元数据(只是容器,整个事情太大了):
<EntityContainer xmlns:p5="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" Name="ApplicationDBContext" p5:UseClrTypes="true">
...
<EntitySet Name="People" EntityType="Site.Models.Person"/>
...
</EntityContainer>
即使我想查询士兵,你也可以看到只有人出现。