依赖dll版本不一致

步骤1:

通过NUGET先安装SqlSugar,然后在 NUGET安装报错的 DLL ,一定要在启动项目安装,这样会自动安装兼容配置到app.config


步骤2:

打开 Web层或者WinFom的项目(启动项目 启动项目 启动项目 重要的说3遍,查看 App.config 有没有下面这种兼容配置,如果没这种配置这个DLL随机性的报错,.NET Framework的 BUG

想办法搞出来,一般NUGET在启动项目安装报错的DLL ,  用NUGET会自动添加到app.config

9.0.0.0是你当前dll版本号 

例1:

  
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
      </dependentAssembly>
      //这边只是例子,要配置的是你报错的dll
      //nuget先安装SqlSugar 在安装报错dll 会带出这个配置  一定要在启动项目安装

例2:

  <dependentAssembly>
        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.27.0" newVersion="8.0.27.0" />
   </dependentAssembly>
   //这边只是例子,要配置的是你报错的dll
   //nuget先安装SqlSugar 在安装报错dll 会带出这个配置  一定要在启动项目安装

注意:启动项目启动项目启动项目启动项目启动项目启动项目启动项目 下面要有这个配置

其他方案

直接下我源码里面的第三方DLL

https://github.com/donet5/SqlSugar/tree/SqlSugar5/Src/Asp.Net/SqlSugar/References




找不到主键或者自增列

原因有下

1 表没建自增列或者主键

2 如果不是SA等高权限数据库的账号 ,需要从实体读取主键或者自增列 InitKeyType要设成Attribute

SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
  ConnectionString = Config.ConnectionString, 
  DbType = DbType.SqlServer, 
  InitKeyType = InitKeyType.Attribute//通过实体特性获取主键或者自增列
});






实体映射出错

说明你数据库表和实体字段有类型不匹配


你可以用下面代码拿到标准的实体类,然后和你的实体类比较一下

 var classString = db.Queryable<Student>().ToClassString("类名");


如果还得到不解决可以把实体类中字段注释了,找出是哪一个字段出的问题





oracle blob 类型转 byte[]报错 ttc error

将ORACLE 驱动升级就能解决该问题





MySql插入表情方案

果糖网