Breeze 不能在ICollection属性上设置集合导航属性

Breeze 不能在ICollection属性上设置集合导航属性,breeze,hottowel,q,Breeze,Hottowel,Q,我有两个类别与一个或多个类别相关: public class ClasssA { public int Id { get; set; } public int ClassBId { get; set; } public virtual ClassB ClassB { get; set; } } public class ClassB { public int Id { get; set; } public string Exampl

我有两个类别与一个或多个类别相关:

public class ClasssA
  {
    public int Id { get; set; }

    public int ClassBId { get; set; }

    public virtual ClassB ClassB { get; set; }
  }

  public class ClassB
  {
    public int Id { get; set; }

    public string Example { get; set; }

    public virtual ICollection<ClassA> ClassACollection { get; set; }
  }

在映射到实体属性“ClassACollection”期间,我在q.js中遇到异常:“集合导航属性可能未设置”。如何正确执行查询?

我不认为您的问题与查询方式有关,我认为它与代码中的其他内容有关。异常似乎相当简单-您是否尝试将值传递到集合属性中

您可能正在尝试使用Knockout的setter来设置导航属性的值,例如在代码中的某个地方-

ClassAObservable.ClassACollection(data.results);
你想这样推每个物体-

ClassAObservable.ClassACollection.push(result);
对于您来说,更好的选择是正确地将ClassA结果映射回ClassB实体,这样您就不必显式地这样做。如果看不到你在做什么,就很难决定采取哪种方法

ClassAObservable.ClassACollection.push(result);