【发布时间】:2014-12-16 09:46:39
【问题描述】:
我将微风与 Entity Framework 6 Code First、C# Web Api 2 和 Knockout 结合使用。 在我为我的一种实体类型添加后代类型之前,一切都很好。这导致我的应用程序的几个部分出现了破坏行为。问题原因:
- 现在
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。
那么,问题是:是否有一种方法可以轻松地处理这些实体,就好像它们不是相关类型一样?如何更改元数据(移除后代类型)以使基础实体具有 observables 但不具有dependentObservables 作为属性?
【问题讨论】:
标签: entity-framework knockout.js breeze