我所有正常的微风查询和更新工作非常完美,现在我已经习惯了,它非常棒!
我当然希望变得困难,并使用breeze加载实际上不是查询结果的实体。或者至少不是直接的。
基本上我有另一个对象使用我的实体类来查找某些匹配的对象。这个逻辑并不重要。结果是调用该对象上的方法将返回IEnumerable<MyObject>
(实际上是IList<MyObject>
),然后我想返回微风以在客户端使用。所以我猜这是一个查询,只是其他东西在做查询逻辑,而不是微风传递它的where和orderby子句。
但目前,我只是从微风Object #<Object> has no method 'getProperty'
只是为了解释我是如何尝试实现的:
第一次尝试:
[HttpGet]
public object SchemasForStatementFile(int fileId)
{
StatementFile statementFile = _contextProvider.Context.Statements.SingleOrDefault(x => x.Id == fileId);
IEnumerable<StatementFileSchema> schemasForFile = _parsingEngine.FindSchemasForFile(statementFile);
return new { schemas = schemasForFile.ToArray() };
}
第二次尝试:
[HttpGet]
public IQueryable<StatementFileSchema> SchemasForStatementFile(int fileId)
{
StatementFile statementFile = _contextProvider.Context.Statements.SingleOrDefault(x => x.Id == fileId);
IEnumerable<StatementFileSchema> schemasForFile = _parsingEngine.FindSchemasForFile(statementFile);
return schemasForFile.AsQueryable();
}
任何一种方法都会出现同样的错误。
答案 0 :(得分:1)
好问题!
这正是 JsonResultsAdapter 的用例。查看源代码中的Edmunds示例或“默认”JsonResultsAdapter。我们的想法是JsonResultsAdapter将获取查询的结果并规定它包含的'entityTypes'。如果需要,它还可以变形数据。有关详细信息,请参阅此处:General discussion of the JsonResultsAdapter和此处JsonResultsAdapter api。