可以不在ICollection属性上设置集合导航属性

时间:2013-08-08 08:15:33

标签: 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 Example { get; set; }

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

执行查询时:

var query = EntityQuery.from('ClassB');

我得到例外:在映射到实体属性'ClassACollection'期间,q.js中的“集合导航属性可能无法设置”。如何正确执行查询?

1 个答案:

答案 0 :(得分:0)

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

您可能正在尝试使用Knockout的setter来设置代码中某处的导航属性的值 -

ClassAObservable.ClassACollection(data.results);

你的意思是像这样推动每个对象 -

ClassAObservable.ClassACollection.push(result);

更好的选择是将ClassA结果正确映射回ClassB实体,这样您就不必明确地执行此操作。如果没有看到你在做什么,很难确定采取哪种方法。