Odata控制器返回的结果不完整。 (EDM模型)

场景

我在 EFcontext 中定义了一个名为 Category 的实体。这是干净的POCO类。在EFContext OnmodelCreating 方法中,我应用了实体配置。在启动时,我为查询配置Odata并基于 Conventional Builder 构建EDM模型。我的控制器继承自 ODataController ,具有 ODataRoutePrefix OdataRoute EnableQuery 属性。

问题

在我的答复中,我收到了:

{
"@odata.context": "https://localhost:44362/api/odata/$metadata#Categories","value": [

这不是错误。它以“ [”结尾。没错httpstatus:200

odata配置

        app.UseMvc(options =>
        {
            options.EnableDependencyInjection();
            options.Select().Filter().OrderBy().Count().Expand().MaxTop(100).SkipToken();
            options.MapodataServiceRoute("odata","api/odata",GetEdmModel());               
        });


        private static IEdmModel GetEdmModel()
    {
        ODataModelBuilder builder = new ODataConventionmodelBuilder();
        var category = builder.entityset<Category>("Categories");
        category.EntityType.HasKey(c => c.Id);

        return builder.GetEdmModel();
    }

EF CategoryTypeConfiguration

    public void Configure(EntityTypeBuilder<Category> categoryConfiguration)
    {
        categoryConfiguration.ToTable("Categories",QueryEFContext.DefaultSchema);

        categoryConfiguration.HasKey(category => category.Id);

        categoryConfiguration.Property(category => category.Name).isrequired();
        categoryConfiguration.Property(category => category.Color).isrequired();
    }

尝试

当我删除行时,它会返回正确的响应:

 modelBuilder.ApplyConfiguration(new CategoryTypeConfiguration());
happy_lele 回答:Odata控制器返回的结果不完整。 (EDM模型)

我曾经遇到此错误。就我而言,它是由于Entity Framework中发生错误而发生的,但是该服务无论如何都返回了200 OK

要查看应用程序中是否存在这种情况,可以将Visual Studio配置为在所有异常情况下都中断:

  • 单击:调试-> Windows ->异常设置(Ctrl + Alt + E
  • 检查:“公共语言运行时异常”

然后再次发送您的请求,看看是否弹出任何异常。

本文链接:https://www.f2er.com/3143018.html

大家都在问