似乎不支持record语法糖构造的类? 返回

SqlSugar 沟通中
4 497
该叫什么 发布于2026/1/10
悬赏:0 飞吻

定义一个

public record UserDirsInfoItem(int Id,string FolderName,string Path, DateTime CreationTime);
前面省略.select(x=new UserDirsInfoItem(这里写字段))

select这里就会报错  System.ArgumentNullException:“Value cannot be null. (Parameter 'con')”

热忱回答4

  • fate sta fate sta VIP0
    2026/1/12

    高版本sqlsugar我记得支持了。

    0 回复
  • VIP0
    2026/1/15

    @fate sta:目前我用的5.1.4.211

    0 回复
  • Kane Kane VIP0
    1个月前

    使用最新2026-5-28 的代码,出现相同问题,调试后发现问题所在,record有两种写法

    写法一(目前是支持的):

    public record StudentRecord
    {    
        public int Id { get; init; }    
        public string Name { get; init; }
    }


    写法二(目前是不支持!!):

    public record StudentRecord(int Id,string Name);


    问题是在 IDataReaderEntityBuilder.cs 文件下的 105行

    https://github.com/DotNetNext/SqlSugar/blob/master/Src/Asp.NetCore2/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs#L105

    image.png


    type.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null) 这个方法返回null导致的

    0 回复
  • Kane Kane VIP0
    1个月前

    完整堆栈

       在 System.ArgumentNullException.Throw(String paramName)

       在 System.Reflection.Emit.DynamicILGenerator.Emit(OpCode opcode, ConstructorInfo con)

       在 SqlSugar.IDataReaderEntityBuilder`1.CreateBuilder(Type type) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\DbBindProvider\IDataReaderEntityBuilder.cs 中: 第 105 行

       在 SqlSugar.DbBindAccessory.<>c__DisplayClass4_0`1.<GetEntityList>b__1() 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\DbBindProvider\DbBindAccessory.cs 中: 第 27 行

       在 SqlSugar.ReflectionInoCore`1.GetOrCreate(String cacheKey, Func`1 create) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\IntegrationServices\CacheService.cs 中: 第 120 行

       在 SqlSugar.ReflectionInoCacheService.GetOrCreate[V](String cacheKey, Func`1 create, Int32 cacheDurationInSeconds) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\IntegrationServices\CacheService.cs 中: 第 37 行

       在 SqlSugar.DbBindAccessory.GetEntityList[T](SqlSugarProvider context, IDataReader dataReader) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\DbBindProvider\DbBindAccessory.cs 中: 第 25 行

       在 SqlSugar.DbBindProvider.DataReaderToList[T](Type type, IDataReader dataReader) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\DbBindProvider\DbBindProvider.cs 中: 第 225 行

       在 SqlSugar.QueryableProvider`1.GetData[TResult](Boolean isComplexModel, Type entityType, IDataReader dataReader) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\QueryableProvider\QueryableHelper.cs 中: 第 2038 行

       在 SqlSugar.QueryableProvider`1.GetData[TResult](KeyValuePair`2 sqlObj) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\QueryableProvider\QueryableHelper.cs 中: 第 1967 行

       在 SqlSugar.QueryableProvider`1._ToList[TResult]() 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\QueryableProvider\QueryableHelper.cs 中: 第 1905 行

       在 SqlSugar.QueryableProvider`1.ToList() 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\QueryableProvider\QueryableExecuteSql.cs 中: 第 582 行

       在 SqlSugar.QueryableProvider`1.First() 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqlSugar\Abstract\QueryableProvider\QueryableExecuteSql.cs 中: 第 72 行

       在 OrmTest._3_EasyQuery.GetStudentById(Int32 id) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqliteTest\3_EasyQuery.cs 中: 第 143 行

       在 OrmTest._3_EasyQuery.Init() 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqliteTest\3_EasyQuery.cs 中: 第 40 行

       在 OrmTest.Program.Main(String[] args) 在 E:\Code\Git\SqlSugar\Src\Asp.NetCore2\SqliteTest\Program.cs 中: 第 16 行


    0 回复