sqlsugar配置查询bug 返回

sqlserver数据库场景:
var model= await DbScoped.SugarScope.Queryable<Order>()
.Select(s1 => new ViewOrder
{
Id = s1.Id.SelectAll(),
OrderName = s1.OrderId.GetConfigValue<ViewDictionary>("Item_Order")
})
.FirstAsync();
说明:s1.OrderId类型为int ViewDictionary字典表中value为string类型时 配置查询转换成sql查询就会报错
错误提示:
在将 varchar 值 'Submit' 转换成数据类型 int 时失败。
English Message : Entity mapping error.在将 varchar 值 'Submit' 转换成数据类型 int 时失败。
at SqlSugar.Check.Exception(Boolean isException, String message, String[] args)
热忱回答(10)
-
fate sta VIP0
1周前OrderName 是string类型吗
0 回复 -
fate sta VIP0
1周前AOP把SQL输出一下
0 回复 -
小孩不哭 VIP0
1周前ordername是string类型
SELECT * FROM (SELECT *, (SELECT [Name] FROM [ViewDictionary] WHERE [Value]=[x].OrderId AND ( [Item] = @Item0_con_0 ) ) AS [OrderName ] ,ROW_NUMBER() OVER(ORDER BY [RealName] ASC) AS RowIndex FROM [Order] x ) T WHERE RowIndex BETWEEN 1 AND 10 这个是分页查询 也是同样的问题
0 回复 -
小孩不哭 VIP0
1周前@fate sta:
ordername是string类型
SELECT * FROM (SELECT *, (SELECT [Name] FROM [ViewDictionary] WHERE [Value]=[x].OrderId AND ( [Item] = @Item0_con_0 ) ) AS [OrderName ] ,ROW_NUMBER() OVER(ORDER BY [RealName] ASC) AS RowIndex FROM [Order] x ) T WHERE RowIndex BETWEEN 1 AND 10 这个是分页查询 也是同样的问题
0 回复 -
小孩不哭 VIP0
1周前@fate sta:在数据库直接执行这个sql的时候 就会报错
0 回复 -
fate sta VIP0
1周前[Value]=[x].OrderId 应该是这2个字段类型不一样
0 回复 -
小孩不哭 VIP0
1周前@fate sta:对 字典表是string类型 业务表是int类型的 难道只能修改数据库实体模型的字段类型吗 s1.OrderId.GetConfigValue<ViewDictionary>("Item_Order") 这里不能支持字段类型转换吗?
0 回复 -
fate sta VIP0
1周前@小孩不哭:不建议转换这样会有性能问题,要么你用联表处理,手动转换
0 回复 -
小孩不哭 VIP0
1周前@fate sta:这样的话 就会出现多种风格的字典表转换方式 而且开发的时候使用配置查询 很容易忽视待转义的字段的类型(导致报错) 是否还有更优的处理方式呢 还麻烦大神考虑考虑,感谢!
0 回复 -
小孩不哭 VIP0
1周前@fate sta:这样的话 就会出现多种风格的字典表转换方式 而且开发的时候使用配置查询 很容易忽视待转义的字段的类型(导致报错) 是否还有更优的处理方式呢 还麻烦大神考虑考虑,感谢!
0 回复