关于相关属性的Breeze查询不起作用?

时间:2014-07-31 04:15:04

标签: breeze

从微风document这应该有效,但我不能让它适合我。

这是我的EF代码第一类:

public class Company
{
    public int Id { get; set; }
    public int? SectorId { get; set; }
    public Sector Sector { get; set; }
}
public class Sector
{
    public int Id { get; set; }
    public string Name { get; set; }
}

在Breeze控制器中:

   [HttpGet]
    public IQueryable<Company> Companies()
    {
        return _repository.Context.Companies.Include("Sector");
    }

我想这样做一个查询:

    var query = breeze.EntityQuery.from("Companies").where("Sector.Name", "==", "Finance");
or 
    var query = breeze.EntityQuery.from("Companies").where("Sector", "any", "Name", "==", "Finance");

但是我收到了这个错误:

  

无法找到属性:扇区类型:公司

如果我改为小写,

    var query = breeze.EntityQuery.from("Companies").where("sector.name", "==", "Finance"); 
or
    var query = breeze.EntityQuery.from("Companies").where("sector", "any", "name", "==", "Finance");   

我收到了这个错误:

  

undefined不是函数

我的问题是什么?我正在使用Breeze v.1.4.14。

1 个答案:

答案 0 :(得分:0)

在Linq中尝试此查询:

 [HttpGet]
public IQueryable<dynamic> Companies()
{
    return _repository.Context.Companies.Select(a=>new
    {
      Company=a,
      Sector=a.Sector
     });
} 

您错过了实体中的构造函数,现在可以检查它

部门实体:

     public class Sector {
      public sector(){
           Companies=new Hashest<Company >();
           }

     public virtual ICollection<Company> Companies {get;set;}
      }