我正在使用基于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
确实存在。