0

我所有正常的微风查询和更新工作都非常完美,而且现在我已经习惯了,它非常光滑!

不过,我当然希望变得困难,并使用微风来加载实际上不是查询结果的实体。或者至少不是直接的。

基本上我有另一个对象,它使用我的实体类来做一些逻辑上的事情来查找某些匹配的对象。这个逻辑无所谓。结果是调用该对象上的方法将返回我一个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();
}

无论哪种方法,我都会遇到相同的错误。

4

1 回答 1

1

好问题!

这正是JsonResultsAdapter的用例。查看源代码中的 Edmunds 示例或“默认”JsonResultsAdapter。这个想法是 JsonResultsAdapter 将获取查询结果并规定它包含的“实体类型”。如果需要,它还可以变形数据。有关更多信息,请参阅此处: JsonResultsAdapter 的一般讨论和此处JsonResultsAdapter api

于 2013-07-08T23:06:12.983 回答