我在用:

  • ASP.NET Core 2.1

  • OData

  • Swashbuckle.AspNetCore(3.0.0)

我正在尝试使用swashbuckle for odata,当我添加值控制器时,我收到此错误:

enter image description here

如果我删除值控制器,我会在swagger上得到这个:

enter image description here

public void ConfigureServices(IServiceCollection services)
{
    services.AddLogging();
    services.AddOData();

    services.AddMvc()
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "OData API", Version = "v1" });
    });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{

    Data.Core.Repository.LoggerFactory = LoggerFactory;

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseCors();
    app.UseODataBatching();

    app.UseMvc(r => {
        var builder = new ODataConventionModelBuilder()
        {                    
            //Namespace = "OData",
        };
        var eb = builder.EntitySet<Employee1>(nameof(Employee1));
        eb = builder.EntitySet<Employee1>(nameof(Employee2));
        eb = builder.EntitySet<Employee1>(nameof(Employee3));
        var model = builder.GetEdmModel();
        r.Count().Filter().OrderBy().Expand().Select().MaxTop(null);
        r.MapODataServiceRoute("odata", null, model, new DefaultODataBatchHandler());

        r.EnableDependencyInjection();
    });

    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.RoutePrefix = "swagger";
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "OData API V1");
    });
    app.UseAuthentication();

    Mapper.Initialize(cfg => {

        cfg.AddProfiles(typeof(Startup));
    });
}