我们提供安全,免费的手游软件下载!
最近在群里有位小伙伴将Dapper迁移至SqlSugar时遇到了一些解决不了的问题,我将这些问题进行了汇总,并准备写一篇文章来详细讲解。
一、sql where in传参问题:
答: SqlSugar中的解决方法是
二、Dapper查询出来的Dynamic动态类型,支持获取不存在的属性
例如:SELECT UserName FROM users
可以通过 result.UserCode,不会报错
答: 在SqlSugar中,dynamic expandobject属性不存在时会报错,例如list[0].id如果不存在则会报错。这个需求还是头一次,因为不报错可能不严谨,SqlSugar暂时没有这个方法可以通扩展一个方法实现。
三、表值参数必须传typeName
在Dapper中是可以不用传的,而在SqlSugar 5.4.1.152+版本下面value可以传null了。
四、类型转换:在Dapper中很多类型做了兼容处理。
比如:数据库中是string,但值是int SELECT CAST( id as nvarchar) id FROM users
在Dapper中Query实体时,id允许定义为string。
答: 在SqlSugar中类型只支持int转string,不支持string转int,默认不支持反向转换。为了防止线上数据因错误数据导致系统出错,考虑到数据严谨性,可以加上特性让它支持转换。
五、Dapper 联表VO转换
不支持IEnumerable
MultiMap
主要用于结果集返回之后,包装成一个有层次的对象。
答: SqlSugar同样可以支持一维对象变成2维对象。效果图
六、 获取Output
在Dapper执行ExecuteReader方法之后,还能通过Get
答: 暂时没有get方法可以通索引拿出来。
热门资讯