c# - 如何从 WebAPI 响应 json 中删除 EF 的导航属性空数组?

标签 c# json entity-framework asp.net-web-api2

我使用 EF 创建了一个 WebApi 项目,当将其配置为 json 响应时,它开始为我提供一个包含导航属性中所有数据的 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"
}

最佳答案

这可以使用序列化属性来完成。

ASP.NET 文档是了解如何执行此操作的良好开端。 http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization

通常,您应该避免暴露您的实体,而是映射到 ViewModel POCO。然而,在一个简单的应用程序中,您可以不必这样做。

关于c# - 如何从 WebAPI 响应 json 中删除 EF 的导航属性空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38640886/

相关文章:

java - 当我尝试解析 JSON 字符串时收到意外的内部错误

javascript - 为什么我得到 NaN 值?

c# - XAML 如何实例化对象?

objective-c - 从 Web 表单下载 JSON 数据

c# - Entity Framework 、存储过程和导航属性

c# - EF 核心 2、.NET 核心 2 :How do I query the same column for multiple conditions using IQueryable<T>?

c# - 将 HttpWebRequest 从 .NET 发送到 php 站点时出错

c# - 通过代码向hadoop作业提供输入

c# - 匹配具有精确 x 或 y 或 z 重复的序列?

c#,泛型类型的问题