C# Net核心API未首先返回所有子数据库

C# Net核心API未首先返回所有子数据库,c#,asp.net-core,core,C#,Asp.net Core,Core,下面是我的代码。我想知道我是否应该用别的东西。我觉得这应该是一个相当简单的回报 存储库: public Task<OrderHistory> GetInvoicedMacolaOrder(string orderNumber) { orderNumber = " " + orderNumber; DataContext.ChangeTracker.LazyLoadingEnab

下面是我的代码。我想知道我是否应该用别的东西。我觉得这应该是一个相当简单的回报

存储库:

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;
            }
我期待的是:

{
            "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": 21,
                            "prod_cat": "044",
                            "box_number": 2,
                            "uniqueBoxID": "100002"
                        },
                       {
                            "box_id": 22,
                            "prod_cat": "044",
                            "box_number": 3,
                            "uniqueBoxID": "100003"
                        }
                    ]
                },
                {
                    "ord_type": "O",
                    "ord_no": "51464326",
                    "line_seq_no": 2,
                    "item_no": "58hhuk",
                    "line_no": 2,
                    "vw_uniqueCartonIds": [
                        {
                            "box_id": 25,
                            "prod_cat": "054",
                            "box_number": 1,
                            "uniqueBoxID": "200001"
                        },
                        {
                            "box_id": 26,
                            "prod_cat": "054",
                            "box_number": 2,
                            "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;
                });

任何想法都将不胜感激,谢谢

如果您调试它以缩小问题范围,可能会有所帮助,因为它可能是存储库中的问题,也可能是
\u mapper.Map中的问题,或者是序列化中的问题,这可能是一个输入错误,但是您正在从控制器调用
GetInvoicedOrder
,但是已经显示了
GetInvoicedMacolaOrder
的实现,如果您想要全部,那么为什么要使用.FirstOrDefaultAsync(o=>o.ord\u no==orderNumber)@jdweng我对.net基本上是新手,我还可以使用什么?尝试ForEachAsync而不是FirstOrDefaultAsync
{
            "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": 21,
                            "prod_cat": "044",
                            "box_number": 2,
                            "uniqueBoxID": "100002"
                        },
                       {
                            "box_id": 22,
                            "prod_cat": "044",
                            "box_number": 3,
                            "uniqueBoxID": "100003"
                        }
                    ]
                },
                {
                    "ord_type": "O",
                    "ord_no": "51464326",
                    "line_seq_no": 2,
                    "item_no": "58hhuk",
                    "line_no": 2,
                    "vw_uniqueCartonIds": [
                        {
                            "box_id": 25,
                            "prod_cat": "054",
                            "box_number": 1,
                            "uniqueBoxID": "200001"
                        },
                        {
                            "box_id": 26,
                            "prod_cat": "054",
                            "box_number": 2,
                            "uniqueBoxID": "200002"
                        }
                    ]
                }
            ]
        }
services.AddControllers(options =>
                {
                    var policy = new AuthorizationPolicyBuilder()
                        .RequireAuthenticatedUser()
                        .Build();

                    options.Filters.Add(new AuthorizeFilter(policy));

                })
               .AddNewtonsoftJson(opt =>
                {
                    opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                });