版本4.9,sqlite中的关于guid的问题 返回

SqlSugar 沟通中
2 178

    做一个服务器slqserver同步数据到本地sqlite中的关于guid的问题,sqlserver的guid字段定义为uniqueidentifier类型,由于sqlite数据库定义为字段为uniqueidentifier时,

获取数据时会报错误:SqlSugar.SqlSugarException:“SqlSugarException.NotSupportedException: "uniqueidentifier" Type NotSupported,

所以类的字段定义为 ColumnDataType = "TEXT"


现在从数据器取数据的数据放入本地sqlite中,有时会报guid和sting转化失败,有时又正常,不懂为何


  //服务器数据


      var list = dbServer.Queryable<表1>().ToList();


      //本地sqlite数据库


      dbLocal.Deleteable<表1>(it => 1==1).ExecuteCommand();




      dbLocal.Insertable(list).ExecuteCommand();


热忱回答2

  • SQL Server使用uniqueidentifier类型存储GUID

    SQLite没有原生的uniqueidentifier类型,您已将其映射为TEXT 改表结构改成我这样


    public class 表1   {      // 其他字段...          [SugarColumn(ColumnName = "YourGuidColumn", ColumnDataType = "TEXT")]      public string GuidString { get; set; }          // 或者保留Guid类型但确保正确转换      [SugarColumn(ColumnName = "YourGuidColumn", ColumnDataType = "TEXT")]      public Guid Id      {          get => Guid.Parse(GuidString);          set => GuidString = value.ToString();      }          // 实际存储的字段      public string GuidString { get; set; }   }  

    0 回复
  • SqliteDbBind.MappingTypesConst.Add试试

    0 回复