【问题标题】:Breezejs and type inheritance: a few questionsBreezejs 和类型继承:几个问题
【发布时间】:2014-12-16 09:46:39
【问题描述】:

我将微风与 Entity Framework 6 Code First、C# Web Api 2 和 Knockout 结合使用。 在我为我的一种实体类型添加后代类型之前,一切都很好。这导致我的应用程序的几个部分出现了破坏行为。问题原因:

  1. 现在entityManager.getEntityByKey('baseTypeName', id, true) 总是返回后代类型的实体
  2. 使用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


    【解决方案1】:

    查看微风.js.samples 存储库中的 DocCode 示例。这里有几个使用 EF 的继承模型示例。

    【讨论】:

    • 您忽略了问题本身,这是否意味着这种行为不是标准的并且是我的应用配置的结果?
    猜你喜欢
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多