0

我正在使用基于microsoft 示例应用程序的 Microsoft.OData.Client 。
这是我的简单 WebAPI 控制器:

    [Route("test")]
    [HttpGet]
    public IHttpActionResult Test()
    {
        var context = _dynamicsContextFactory.CreateContext();
        // adding this had no effect // context.MergeOption = MergeOption.AppendOnly;
        // adding this had no effect // context.MergeOption = MergeOption.OverwriteChanges;
        // adding this had no effect // context.MergeOption = MergeOption.NoTracking;
        // adding this had no effect // context.MergeOption = MergeOption.PreserveChanges;
        var result = context.SalesOrderHeadersV2.Expand("SalesOrderLines").Take(1).ToList();
        return Ok(result);
    }

客户端生成正确的 URL。 https://example.com/data/SalesOrderHeadersV2?$top=1&$expand=SalesOrderLines 我可以在提琴手中看到 JSON 中返回的 SalesOrderLines 属性。

但是,当我检查结果变量(或查看输出)时,没有 SalesOrderLines 属性。因此,订单行尚未从从 oData 源下载的数据映射到我的结果对象中。

重要提示:我正在使用EDMXTrimmer来减少客户端中的实体数量,如果我缺少加入实体,这会是一个问题吗?(在这种情况下似乎不太可能有加入实体)

线索?
当我尝试更改此行时:

var result = context.SalesOrderHeadersV2.Expand(x=>x.SalesOrderLines).Take(1).ToList();

它不会编译,因为'SalesOrderHeaderV2' does not contain a definition for 'SalesOrderLines' ...
Note:context.SalesOrderLines确实存在。

4

1 回答 1

1

问题是 EDMXTrimmer 删除了导航属性。
EDMXTrimmer 已被修复。

于 2019-10-08T04:25:22.657 回答