请求Sugarsql中对inet字段的支持 返回

SqlSugar 老数据
8 1139
该叫什么 siscon 发布于2023/2/26
悬赏:0 飞吻

实体类配置属性为IPAddress时,对inet类型字段进行插入,报错如下:

System.InvalidCastException: Can't write CLR type System.Net.IPAddress with handler type TextHandler

   at Npgsql.Internal.TypeHandlers.TextHandler.ValidateObjectAndGetLength(Object value, NpgsqlLengthCache& lengthCache, NpgsqlParameter parameter)

   at Npgsql.NpgsqlParameter.ValidateAndGetLength()

   at Npgsql.NpgsqlParameterCollection.ProcessParameters(TypeMapper typeMapper, Boolean validateValues, CommandType commandType)

   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)

   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)

   at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)

   at SqlSugar.AdoProvider.ExecuteCommandAsync(String sql, SugarParameter[] parameters)

   at SqlSugar.InsertableProvider`1.ExecuteCommandAsync()

   at MUGHome.Backend.Repository.Upload.UploadInfoRepository.InsertUploadInfo(UploadInfo uploadInfo) in F:\CommunityBackend\MUGHome.Backend.Repository\Upload\UploadInfoRepository.cs:line 18

   at MUGHome.Backend.Services.Upload.UploadServices.UploadSingleFile(JwtToken token, IFormFile file, String uploadPath) in F:\CommunityBackend\MUGHome.Backend.Services\Upload\UploadServices.cs:line 80

   at MUGHome.Backend.Services.Upload.UploadServices.UploadFile(JwtToken token, IFormCollection formCollection) in F:\CommunityBackend\MUGHome.Backend.Services\Upload\UploadServices.cs:line 109

   at MUGHome.Backend.WebAPI.Controllers.UploadController.UploadFile(IFormCollection formCollection) in F:\CommunityBackend\MUGHome.Backend.WebAPI\Controllers\UploadController.cs:line 36

   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)

   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()

--- End of stack trace from previous location ---

   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)


通过查找原因应该是框架未对inet字段进行支持适配,请求作者进行适配

热忱回答8

  • fate sta fate sta VIP0
    2023/2/26

    C#你用什么类型 inet

    0 回复
  • siscon siscon VIP0
    2023/2/26

    @fate sta:inet类型在npgsql里对应的原始c#类型就是ipaddress

    npgsql对其做了二次包装,有个npgsqlinet的类,本质就是Tuple<IPAddress,int>

    0 回复
  • siscon siscon VIP0
    2023/2/26

    @fate sta:官网中给的映射类型是这些

    https://www.npgsql.org/doc/types/basic.html?q=inet

    0 回复
  • fate sta fate sta VIP0
    2023/2/26

    这个我支持一下,晚点发布一个预览版本

    0 回复
  • siscon siscon VIP0
    2023/2/26

    @fate sta:好的,谢谢作者大大,作者辛苦了

    0 回复
  • 升级到 

    SqlSugarCore  5.1.3.55 支持了自定义数据类型


    0 回复
  • 0 回复
  • siscon siscon VIP0
    2023/3/10

    @fate sta:感谢大佬!

    0 回复