Я использую Breeze как на моем клиенте, так и на сервере с помощью базы данных sql express.Breeze не удается разрешить метод контроллера 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(...)
, должен быть одним из методов контроллера веб-ассемблера. Поэтому я хотел бы ожидать, добавив следующие сервера:
[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! Удивительно, что сработало! Было бы неплохо обновить документацию с этой информацией. На стороне записки, вы, ребята, создали чудо! Мне просто нравится бриз. – GETah
Это несколько обсуждение этого здесь: http://www.breezejs.com/documentation/querying-locally, но, по общему признанию, не в очевидном месте. –
Странно, я начал видеть эту ошибку только сегодня, и я не верю, что я изменил этот код и не обновил. В моем случае я возвращаю IQueryable