【发布时间】:2017-02-27 00:05:28
【问题描述】:
我已将我的财产装饰为
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public IEnumerable<Season> seasons { get; set; }
如果不存在记录,以下代码会出现问题,该代码返回 "seasons": []。
from ul in userLeagues
select new Map.League
{
id = ul.LeagueID,
seasons = from ss in ul.Standings
where inc.Seasons && ss.LeagueID == ul.LeagueID
select new Map.Season
{
seasonId = ss.Season.SeasonId,
seasonName = ss.Season.SeasonName
})
}
【问题讨论】:
-
我是 curios.. 为什么 LINQ 代码会有问题.. 它会返回包含数据的列表或空列表,并且 JSON 序列化程序会将其序列化... 只要解析 JSON 对象的应用程序抱怨它。
-
发生这种情况是因为 linq 查询永远不会返回 null。这将返回一个 IQueryable,但是当它评估查询时,它将返回一个空列表,而不是 null。
-
LINQ 不会返回 null,因此您的 null 处理属性什么也不做。
-
您执行 Queryable.ToList() 并检查计数并将目标变量设置为 null 如果计数为零
-
考虑更改/简化您的问题查询,以便尝试回答的人可以在dotnetfiddle.net 中运行它。
标签: c# json entity-framework linq