Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# aspnetboilerplate递归实体查找时出现内部500错误_C#_Asp.net Mvc_Entity Framework_Recursion_Aspnetboilerplate - Fatal编程技术网

C# aspnetboilerplate递归实体查找时出现内部500错误

C# aspnetboilerplate递归实体查找时出现内部500错误,c#,asp.net-mvc,entity-framework,recursion,aspnetboilerplate,C#,Asp.net Mvc,Entity Framework,Recursion,Aspnetboilerplate,我在查询递归实体查找时遇到以下错误 错误: {“message”:“出现错误”。,“exceptionMessage”:“存在为api控制器应用程序/类别定义的GetCategories操作,但使用不同的HTTP谓词。请求谓词为GET。它应为Post”,“exceptionType”:“System.Web.HttpException”,“stackTrace”:“位于Abp.WebApi.Controllers.Dynamic.Selectors.AbpApiControllerActionS

我在查询递归实体查找时遇到以下错误

错误

{“message”:“出现错误”。,“exceptionMessage”:“存在为api控制器应用程序/类别定义的GetCategories操作,但使用不同的HTTP谓词。请求谓词为GET。它应为Post”,“exceptionType”:“System.Web.HttpException”,“stackTrace”:“位于Abp.WebApi.Controllers.Dynamic.Selectors.AbpApiControllerActionSelector.GetActionDescriptorByActionName(HttpControllerContext controllerContext,DynamicCapicControllerInfo controllerInfo,String actionName)\r\n位于Abp.WebApi.Controllers.Dynamic.Selectors.AbpApiControllerActionSelector.Selector操作(HttpControllerContext controllerContext controllerContext)\r\n位于System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken CancellationToken)\r\n位于Castle.Proxies.DynamicCapicontroller
1Proxy\u 5.ExecuteAsync\u回调(HttpControllerContext controllerContext,CancellationToken CancellationToken CancellationToken)\r\n在Castle.Proxies.Invocations.ApiController\u ExecuteAsync\u 5.InvokeMethodOnTarget()\r\n在Castle.DynamicProxy.AbstractInvocation.Procedure()\r\n在Abp.WebApi.Controllers.Dynamic.Interceptors.abpddynamicApicControllerInterceptor
1.Intercept(IInvocation调用)\r\n在Castle.DynamicProxy.AbstractInvocation.Proceduce()\r\n位于Castle.proxy.DynamicApiController`1Proxy_5.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken CancellationToken)\r\n位于System.Web.Http.Dispatcher.HttpControllerDispatcher.d_1.MoveNext()“}

只有在我添加了第一个具有
ParentId

模型


所有WebApi方法的默认http谓词为POST。 用邮局提出你的要求


如果您不喜欢此解决方案,可以使用常规谓词。对于常规谓词,它会显示方法名称前缀并与相关http谓词匹配

  • GetCategories->HTTP-GET
  • 删除类别->HTTP-DELETE
  • UpdateCategory->HTTP-PUT
  • CreateCategory->HTTP-POST
您可以使用WithConventionalVerbs方法,如下所示:

Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
    .ForAll<IApplicationService>(Assembly.GetAssembly(typeof(SimpleTaskSystemApplicationModule)), "tasksystem")
    .WithConventionalVerbs()
    .Build();
Configuration.Modules.AbpWebApi().DynamicCapicontrollerBuilder
.ForAll(Assembly.GetAssembly(typeof(SimpleTaskSystemApplicationModule)),“tasksystem”)
.使用常规动词()
.Build();
有关进一步资料:

您的解决方案修复了问题的一半,以帮助找到根本原因,即自引用Json错误。
  public ListResultDto<CategoryListDto> GetCategories(GetCategoriesInput input)
  {
    var categories = _categoryRepository
        .GetAll()
        .WhereIf(
            !input.Filter.IsNullOrEmpty(),
            p => p.Name.Contains(input.Filter) 
        )
        .OrderBy(p => p.Name)
        .ToList();

        return new ListResultDto<CategoryListDto>(categories.MapTo<List<CategoryListDto>>());
  }
[AutoMapFrom(typeof(Category))]
public class CategoryListDto : FullAuditedEntityDto
{
    public string Name { get; set; }
    public string SharepointMapping { get; set; }
    public int? ParentId { get; set; }
    public virtual Category Parent { get; set; }       
}
Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
    .ForAll<IApplicationService>(Assembly.GetAssembly(typeof(SimpleTaskSystemApplicationModule)), "tasksystem")
    .WithConventionalVerbs()
    .Build();