c# - C# 控制器确实省略了 XML 子元素的属性
问题描述
我的任务是调试一个相当大(且未记录)的 ASP.NET 项目,更具体地说,是一个端点控制器,如下所示(由我缩短和假名,但未修改):
namespace myAPI.Controllers
{
public class MyViewController: BaseController
{
private myContext _db => ServiceLocator.Db;
[ResponseType(typeof(IEnumerable<MyViewDto>))]
public IHttpActionResult GetView(int? selectedEntityId)
{
var overallViews = inputPages[0].MyViews.ToList();
for (int j = 1; j < inputPages.Count; j++)
{
var MyViewsTemp = inputPages[j].MyViews.
Where(x => x.Entity == selectedEntityId).ToList();
MyViews.AddRange(MyViewsTemp);
}
var result = myViews.GroupBy(x => x.Position).
Select(x => new MyViewDto
{
Adjustments = x.Sum(y => y.Adjustments),
children = x.Select(Mapper.Map<MyViewDto>), // <-- What exactly does this do?
PositionId = x.Key?.Id,
PositionName = x.Key?.Name,
Value = x.Sum(y => y.Value),
ValueAdjusted = x.Sum(y => y.ValueAdjusted),
});
return Ok(result);
}
}
}
正如预期的那样,端点提供了以下结构的嵌套 XML,但有时某些属性ValueAdjusted
对于(第一级)子级是空的,我不明白。
预期行为:如果 childi
是叶节点(=没有后续子节点),则ValueAdjusted = x.Sum(y => y.ValueAdjusted)
应该只返回该inputPages[i].ValueAdjusted
节点的 the ,还是这样?
工程示例:
<MyViewDto xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<MyViews>
<MyViewDto>
<Adjustments>45818816</Adjustments>
<PositionId>10</PositionId>
<PositionName>Big Brother Bank</PositionName>
<Value>299792458.00</Value>
<children>
<RunoffViewDto>
<Adjustments i:nil="true"/>
<PositionId>10</PositionId>
<PositionName>Big Brother Bank</PositionName>
<SubPositionId>1</SubPositionId>
<SubPositionName>Assets A</SubPositionName>
<Value>19955366.62</Value>
<ValueAdjusted i:nil="true"/>
<children i:nil="true"/>
</RunoffViewDto>
<RunoffViewDto>
<Adjustments i:nil="true"/>
<PositionId>10</PositionId>
<PositionName>Big Brother Bank</PositionName>
<SubPositionId>2</SubPositionId>
<SubPositionName>Assets B</SubPositionName>
<Value>19955366.62</Value>
<ValueAdjusted i:nil="true"/>
<children i:nil="true"/>
<RunoffViewDto>
</MyViewDto>
</MyViews>
非常感谢任何帮助和解释!
解决方案
推荐阅读
- php - 使用 php 和 mysql 运行 INSERT ON DUPLICATE KEY UPDATE
- java - 在键盘中单击完成时如何避免调用 ExpandableListView 中的 getChildView
- python - 如何检查数据库值是否已经存在
- c# - 在 C# 中创建三元条件
- c# - xamarin 形成如何从后面的代码中填充选择器
- javascript - 添加更多 STUN 服务器会增加 WebRTC 连接的机会吗?
- python - python请求冻结程序
- java - Java Spring MongoDB 存储库接口
- kubernetes - 是否可以在 KubeletConfiguration 中将 RotateCertificates 设置为 false
- arrays - 替换 this.state 中的 Array 元素