问题描述
下面是我的代码。我想知道我是否可以使用其他东西更好。我觉得这应该是一个相当简单的回报。
存储库:
public Task<OrderHistory> GetInvoicedMacolaOrder(string orderNumber)
{
orderNumber = " " + orderNumber;
DataContext.ChangeTracker.LazyLoadingEnabled = false;
var order = DataContext.OrderHistory
.Include(order => order.OrderLines)
.ThenInclude(line => line.vw_uniqueCartonIds)
.FirstOrDefaultAsync(o => o.ord_no == orderNumber);
return order;
}
OrderHistoryController:
[Authorize(Policy = "CreateReplacementOrder")]
[HttpGet("invoicedorder/{orderNumber}/get")]
public async Task<IActionResult> OrderLookUp(string orderNumber)
{
if (PoExists(orderNumber))
{
var order = await _mrepo.GetInvoicedOrder(orderNumber);
var orderToReturn = _mapper.Map<OrderHistoryDtoDetail>(order);
return Ok(orderToReturn);
}
else
{
return BadRequest("Could not find order number.");
}
}
这是返回的内容:
{
"ord_no": "51464326","status": "P","ord_dt": "2020-03-29T00:00:00","apply_to_no": null,"oe_po_no": "3804339 ","cus_no": "65564654018","ship_to_name": "Omar brown"
"OrderLines": [
{
"ord_type": "O","ord_no": "51464326","line_seq_no": 1,"item_no": "jkhhuk","line_no": 1,"vw_uniqueCartonIds": [
{
"Box_id": 20,"prod_cat": "044","Box_number": 1,"uniqueBoxID": "100001"
},{
"Box_id": 20,"Box_number": 2,"uniqueBoxID": "100002"
},"Box_number": 3,"uniqueBoxID": "100003"
}
]
}
]
}
我期望的是
{
"ord_no": "51464326","ship_to_name": "Omar brown"
"OrderLines": [
{
"ord_type": "O","vw_uniqueCartonIds": [
{
"Box_id": 20,"uniqueBoxID": "100001"
},{
"Box_id": 21,"uniqueBoxID": "100002"
},{
"Box_id": 22,"uniqueBoxID": "100003"
}
]
},{
"ord_type": "O","line_seq_no": 2,"item_no": "58hhuk","line_no": 2,"vw_uniqueCartonIds": [
{
"Box_id": 25,"prod_cat": "054","uniqueBoxID": "200001"
},{
"Box_id": 26,"uniqueBoxID": "200002"
}
]
}
]
}
我也看到了有关ReferenceLoopHandling的帖子,并将其添加到了startup.cs文件中,但无济于事。
services.AddControllers(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new Authorizefilter(policy));
})
.AddNewtonsoftJson(opt =>
{
opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});
感谢任何想法,谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)