步骤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 驱动升级就能解决该问题
2016 © donet5.comApache Licence 2.0