微风过滤不起作用

时间:2014-04-10 13:39:27

标签: filter breeze client-side single-page-application

我正在使用微风,过滤器不起作用。

var EntityQuery = breeze.EntityQuery;
var manager = configureBreezeManager("xxx");

function configureBreezeManager(param) {
   breeze.NamingConvention.camelCase.setAsDefault();
   var mgr = new breeze.EntityManager(param);
   model.configureMetadataStore(mgr.metadataStore);
   return mgr;
}

我的查询

var query = EntityQuery.from('GetStudents').where("Id", "==", "xxx");
 return manager.executeQuery(query)

忽略过滤器并返回所有结果。我的学生返回所有学生的智商。

public IQueryable<Students> GetStudents(){
     return context.Students;
}

那里有什么东西我做错了或者我应该去其他地方看看吗?

修改 我意识到我的控制器缺少属性[BreezeController]。但是当我包含它时,我发现元数据路径在尝试加载时没有给出错误(下面的错误500)。在控制器上没有此属性的情况下,matadata加载正常,但过滤不起作用。这有关系吗?

"Could not load file or assembly 'System.Web.Http.OData, ... or one of its dependencies. The system cannot find the file specified."

2 个答案:

答案 0 :(得分:0)

您的问题可能是您指定了一个&#39; camelCase&#39; namingConvention,但您的查询是针对&#39; Id&#39;而不是&#39; id&#39;。即试试:

var query = EntityQuery.from('GetStudents').where("id", "==", "xxx");
return manager.executeQuery(query) 

答案 1 :(得分:0)

我错过了[BreezeController],在添加之后,我收到了错误Could not load file or assembly System.Web.Http.OData, Version=4.0.0.0,并且能够通过在包管理器中运行Install-Package Microsoft.AspNet.WebApi.OData来解决它