我创建了一个带有EF的WebApi项目,并将其配置为json响应时,它开始为我提供一个包含导航属性中所有数据的查询(实体)的json对象。我关闭了EF的延迟加载,现在我可以看到我的响应不包含任何来自导航实体的数据。但是,仍然有几个空阵列被显示。我怎么才能彻底摆脱它们?如何从WebAPI响应json中删除导航属性空EF阵列?
除此之外,json响应将$ .id属性添加到我的响应中,我们是否也可以删除它?
{
$id: "1",
ChargePoints: [ ],
ChargerActionHistory: [ ],
ChargingBoxModels: null,
ChargingStations: null,
StatusCodes: null,
WallSettings: null,
Heartbeats: [ ],
PK_ChargingBoxID: 2,
FK_ChargingStationsID: 1,
FK_WallSettingsID: 1,
FK_StatusCodeID: 1,
FK_ChargingBoxModelID: 1,
DeviceID: "HUB399209-UK",
ChargingBoxName: "ArneCharger",
CSEndpoint: null,
CBEndpoint: null,
CSPort: null,
CBPort: null,
DeviceIP: null,
OperationalPhase: null,
HeartbeatInterval: 5,
MeterInterval: 10,
Notes: "test device",
CommissionedDate: "2016-05-23T13:52:07.193",
ExpiryDate: "2016-06-23T13:52:07.193",
isAuthenticated: true,
isPublic: true,
isActive: true,
Keys: "39c5f761-5c08-4b3d-9b88-adcfd75ss26b"
}
一些代码片段给你的问题更多的含义。 – Venky
通常你不直接返回域模型。您需要将它们转换为POCO对象并将其返回给公众。在创建POCO时,您可以指定要向世界公开的属性。 – Venky
是不是这个转换开销?像转换域模型到特定的poco对象和用户,然后从poco到域模型。 – Shahzad