我所有正常的微风查询和更新工作都非常完美,而且现在我已经习惯了,它非常光滑!
不过,我当然希望变得困难,并使用微风来加载实际上不是查询结果的实体。或者至少不是直接的。
基本上我有另一个对象,它使用我的实体类来做一些逻辑上的事情来查找某些匹配的对象。这个逻辑无所谓。结果是调用该对象上的方法将返回我一个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();
}
无论哪种方法,我都会遇到相同的错误。