我有一个使用以下端点启用了配置的项目,并且应返回实体-客户的AccountDetails
https://my.website/odata/accountdetails/{accountNumber}
我的项目有以下2个实体,
实体1:资产负债表
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());
});
当我查询API以获取帐户详细信息时,理想情况下,我应该获得3个返回的属性-名称,帐户号和余额。
但是我得到名称和帐号,但没有余额吗?
我做错什么了吗?
答案 0 :(得分:1)
我的项目有2个实体
似乎您只有一个实体AccountDetails
,而另一个BalanceSheet
是复杂类型。您已在Edm模型中注册AccountDetails
实体,并且似乎缺少复杂类型注册。
在Edm模型中添加复杂类型应该可以解决此问题。
builder.ComplexType<BalanceSheet>();
如果它不起作用,请共享控制器代码和$ metadata