我在我的客户端和服务器上都使用了Breeze和sql express数据库。Breeze未能解决web api控制器方法
我的服务器代码:
[Authorize]
[BreezeController]
public class DataController : ApiController{
[HttpGet]
public IQueryable<Product> Products()
{
...
}
}
我的客户端代码:
var getProducts = function() {
var query = entityQuery.from('Products');
return manager.executeQuery(query)
.then(querysucceeded)
.fail(queryfailed);
...
};
这工作得很好。但是,文档说传递给EntityQuery.from(...)
的参数应该是breeze web api控制器方法之一。所以,我希望加入以下服务器:
[HttpGet]
public IQueryable<Product> TestMethod()
{
...
}
而且给客户:
var getProjects = function() {
var query = entityQuery.from('TestMethod');
return manager.executeQuery(query)
.then(querysucceeded)
.fail(queryfailed);
...
};
我预计这个工作,但它不会:( 我得到以下错误控制台:
Uncaught Error: Cannot find an entityType for resourceName: 'TestMethod'. Consider adding an 'EntityQuery.toType' call to your query or calling the MetadataStore.setEntityTypeForResourceName method to register an entityType for this resourceName.
+1!真棒工作!用这条信息更新文档会很好。在旁注中,你们建立了一个奇迹!我只是喜欢Breeze框架。 – GETah
这是这里的一些讨论:http://www.breezejs.com/documentation/querying-locally,但承认不在明显的地方。 –
奇怪的是,我从今天开始看到这个错误,我不相信我改变了代码,也没有升级。在我的情况下,我返回IQueryable