如何指定&#34; EntityContainer&#34;使用EdmBuilder.GetEdm <dbcontext>()?</dbcontext>时的元数据输出

时间:2015-03-29 20:27:11

标签: entity-framework asp.net-web-api odata breeze ado.net-entity-data-model

我正在使用OData,Breeze和Code First Entity Framework。我最近从ODataConventionModelBuilder切换到EdmBuilder并遇到了一些问题。

我有两个类“So​​ldier”和“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>

即使我想查询士兵,你也可以看到只有人出现。

0 个答案:

没有答案