我在实体框架6 Code First,C#Web Api 2和Knockout中使用了breeze。 一切都很好,直到我为我的一个实体类型添加了后代类型。这导致了我的应用程序的几个部分的代理行为。问题的原因:
entityManager.getEntityByKey('baseTypeName', id, true)
始终返回后代类型的实体baseEntityType.dataProperties.push(prop)
扩展基类型不会影响后代类型的实体我决定从元数据中删除后代类型:
public class DbContextForBreezeMetadata : MyDbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Ignore<DescendantType>();
base.OnModelCreating(modelBuilder);
}
}
public class EntityContextProvider : EFContextProvider<MyDbContext>
{
protected override string BuildJsonMetadata()
{
return new EFContextProvider<DbContextForBreezeMetadata>().Metadata();
}
}
在执行此操作后,我看到基本实体的所有属性都变为dependentObservables。
所以,问题是:它是否可以轻松地与这些实体一起工作,就好像它们不是相关的类型一样?如何更改元数据(删除后代类型),以便基本实体具有可观察但不具有dependentObservables作为属性?
答案 0 :(得分:0)
查看breeze.js.samples repo中的DocCode示例。这是使用EF的继承模型的几个例子。