JsonApiDotnetCore OnWritting() 方法中的数据库读取不会从数据库中获取相关实体和数据

问题描述 投票:0回答:1

我正在开发一个小项目,我们将 JsonApiDotnetCore 与 EF 结合使用。我正在实现库文档(ResourceDefinition - OnDeserialize() 和 OnWritting() 方法)中描述的管道,并且我可以仅在 OnDeserialize() 方法中毫无问题地从数据库获取数据。在 OnWriting() 方法中,会获取实体,但所有属性都有默认值(零和空),即使我在查询期间使用 .Include() 也是如此。

这是我正在使用的代码片段:

var dbUserPermission = _portalDbContext.UserPermission
            .Include(userPermission => userPermission.User)
            .FirstOrDefault(f => f.CustomersId == customer.Id)

如果我在 OnDeserialize() 或 OnWritting() 方法(在

Customer
资源定义中)执行此查询,结果会有所不同。在 OnDeserialize() 中,我正确获取实体和所有相关数据,在 OnWritting() 中,我仅获取填充有默认值且不包含关系的实体。

这是我在 Program.cs 中注册的 json:api:

builder.Services.AddJsonApi<PortalDbContext>(options =>
    {
        options.IncludeExceptionStackTraceInErrors = true;
        options.IncludeRequestBodyInErrors = true;
        options.UseRelativeLinks = true;
        options.SerializerOptions.WriteIndented = true;
        options.SerializerOptions.Converters.Add(new JsonStringEnumConverter());
    }
    , discovery => discovery.AddCurrentAssembly()
);

感谢您的任何提示。我找不到有类似问题的人。

c# .net-core entity-framework-core json-api
1个回答
0
投票

您能否前往 https://github.com/json-api-dotnet/JsonApiDotNetCore/issues/new/choose 并创建包含可运行的重现项目的错误报告?

© www.soinside.com 2019 - 2024. All rights reserved.