WTM icon indicating copy to clipboard operation
WTM copied to clipboard

修改实体信息时,swagger所有的对象名都是小写的,提交的json大小写敏感

Open lwq202 opened this issue 5 years ago • 1 comments

[toc]

Swagger显示的样子

微信截图_20200801161902

如果提交这个做修改的话,会修改不成功

{
    "entity": {
        "Name": "哈哈哈fff",
        "DisplayName": "哈哈哈fff",
        "TypeId": "6facf25c-c7a4-4748-a2c7-2e9082d13690",
        "Id": "ae881fb8-aa80-4bcb-acc0-10e9be498169",
        "ImageId": "e59c5fdf-c13c-44ed-aab4-67b7e3dd3980",
        "SoundId": "94905723-cb8f-42b4-85fc-9bbe275eda9f"
    }
}

这样提交才可以

{
    "Entity": {
        "Name": "哈哈哈fff",
        "DisplayName": "哈哈哈fff",
        "TypeId": "6facf25c-c7a4-4748-a2c7-2e9082d13690",
        "Id": "ae881fb8-aa80-4bcb-acc0-10e9be498169",
        "ImageId": "e59c5fdf-c13c-44ed-aab4-67b7e3dd3980",
        "SoundId": "94905723-cb8f-42b4-85fc-9bbe275eda9f"
    }
}

查看了源码在源码中有这么一段

在这个里面第520行

WalkingTec.Mvvm.Core.BaseCRUDVM<TModel>

if (!updateAllFields)
      {
        foreach (string key in this.FC.Keys)
        {
          if (key.StartsWith("Entity.") && !key.Contains("["))//在这里是否可以比较的时候忽略大小写,大小写敏感会出问题
          {
            string fieldName = key.Replace("Entity.", "");
            try
            {
              this.DC.UpdateProperty<TModel>(this.Entity, fieldName);//还有这里如果字段名是小写也会出现更新不了的问题
            }
            catch (Exception ex)
            {
            }
          }
        }
        if (!typeof (TModel).GetTypeInfo().IsSubclassOf(typeof (BasePoco)))
          return;
        try
        {
          this.DC.UpdateProperty<TModel>(this.Entity, "UpdateTime");
          this.DC.UpdateProperty<TModel>(this.Entity, "UpdateBy");
        }
        catch (Exception ex)
        {
        }
      }
      else
        this.DC.UpdateEntity<TModel>(this.Entity);

lwq202 avatar Aug 01 '20 08:08 lwq202

你如果用系统自带的swagger,他生成的也应该是大写的。不过你说的这个是个问题,后续我改一下,没有必要区分大小写

liuliang-wt avatar Aug 01 '20 15:08 liuliang-wt