ASP.NET CORE 2 Web API - OData v4
我的项目已使用以下端点启用了配置,并且应该返回实体 - 客户的 AccountDetails
https://my.website/odata/accountdetails/{accountNumber}
我的项目有 2 个实体,如下所示,
实体 1: Assets 负债表
public class BalanceSheet{
public int TotalBalance { get; set; }
public int AvaialableBalance { get; set; }
}
实体 2:帐户详细信息
public class AccountDetails{
public int Name{ get; set; }
public int AccountNumber { get; set; }
public BalanceSheet Balance { get; set;}
}
我的 OData 已配置如下。
app.UseMvc(routebuilder =>
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<AccountDetails>("AccountDetails");
routebuilder.MapODataServiceRoute("ODataCommon", "odata", builder.GetEdmModel());
});
When i query the API to get the account details, ideally i should be getting 3 properties returned which are - Name, AccountNumber & Balance.
But i get Name and the AccountNumber but not the Balance?
难道我做错了什么吗?
最佳答案
My Project has 2 entities
您似乎只有一个实体 AccountDetails
,而另一个 BalanceSheet
是一种复杂类型。您已在 Edm 模型中注册了 AccountDetails
实体,但复杂类型注册似乎丢失。
在 Edm 模型中添加复杂类型应该可以解决该问题。
builder.ComplexType<BalanceSheet>();
如果不起作用,请分享 Controller 代码和$元数据
关于c# - OData 端点不返回实体的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436527/