求助:代码返回数据行数和生成的sql拿到数据库工具(navicat)执行数据行数不一致,相差3000多行。 返回

数据库类型 :SQLite
periodBalanceVo.Extends = await db.Queryable<Vou, VouDetail, VouExtend>
((av, avd, ave) => av.Id == avd.VoucherId && avd.Id == ave.VoucherDetailId)
.Where((av, avd, ave) => av.VoucherDate >= beginDate && av.VoucherDate <= endDate)
.GroupBy((av, avd, ave) => new
{
avd.OriginalId,
avd.Number,
avd.Name,
ave.ExtendFieldCode,
ave.ExtendFieldName,
ave.SegmentValue,
ave.SegmentName
})
.Select((av, avd, ave) => new AccountingPeriodExtend
{
OriginalId = avd.OriginalId,
ExtendFieldCode = ave.ExtendFieldCode,
ExtendFieldName = ave.ExtendFieldName,
SegmentValue = ave.SegmentValue,
SegmentName = ave.SegmentName,
OriginalAccountNumber = avd.Number,
OriginalAccountName = avd.Name
})
.ToListAsync();
热忱回答(9)
-
fate sta VIP0
2周前ORM 返回数量只和你的SQL有关系
0 回复 -
fate sta VIP0
2周前用Queryable.Count()进行测试
0 回复 -
Yun VIP0
2周前@fate sta:Queryable.Count() =23387 上面Queryable生成的SQL复制到 Navicat 执行,结果行数:20803
0 回复 -
fate sta VIP0
2周前@Yun:Count是SQL执行的结果,那只能是SQL差异或者库有差异
0 回复 -
fate sta VIP0
2周前如果还有疑问提供完整DEMO,带上数据库
0 回复 -
Yun VIP0
2周前有人在SQLite类数据库使用sqlsugar遇到同样问题吗,求解答。使用生成的sql,这样执行返回的行数和Navicat执行结果行数是一致的
/原生SQL用实体 sql 查询
List<ClassA> t=db.Ado.SqlQuery<ClassA>(sql);
//比db.SqlQueryable兼容性更强,支持复杂SQL存储过程,缺点没有自带的分页操作
0 回复 -
fate sta VIP0
2周前@Yun:那就是参数化和非参数化的问题,当数据库存在错误格式时间会出现时间过滤出问题
0 回复 -
fate sta VIP0
2周前.Where((av, avd, ave) =>convert.ToDateTime( av.VoucherDate )>= convert.ToDateTime( beginDate )
&&convert.ToDateTime( av.VoucherDate) <= onvert.ToDateTime( endDate)) 你可以给条件2边都加上转换保证格式一样
0 回复 -
Yun VIP0
2周前@fate sta:谢谢你。是这样问题。跟sqlsugar无关,根本原因是sqlite
对日期查询格式的要求
0 回复