【发布时间】:2016-04-26 15:50:14
【问题描述】:
我的 OData 控制器有问题,与我拥有的其他控制器相比,它有点不寻常。它是第一个完全从内存中工作的 - 不涉及数据库。
返回的实体是:
public class TrdRun {
[Key]
public Guid Identity { get; set; }
public TrdTrade [] Trades { get; set; }
TrdTrade 也是一个实体集(如果查询针对数据库)。但在这种特殊情况下,我想从运行中返回所有关联的活跃交易,并且我这样做而不进入数据库。
我的问题?以下代码:
[ODataRoute]
public IEnumerable<Reflexo.Api.TrdRun> Get(ODataQueryOptions options) {
var instances = Repository.TrdInstance.AsEnumerable();
var runs = new List<Reflexo.Api.TrdRun>();
foreach (var instance in instances) {
runs.Add(Get(instance.Identifier));
}
return runs;
}
正确配置运行以初始化交易 - 但 WebApi 决定吞下它们。
有什么方法可以将其配置为“按给定”返回数据而不进行进一步过滤?我知道 AutoExpandAttribute(我想避免这种情况 - 我不希望 API 类标记有 OData 属性),但我没有启用 Query,所以我希望在设置时返回返回数据。
【问题讨论】: