FreeSql
FreeSql copied to clipboard
在SqlServer数据的查询条件中使用枚举型.ToString会被解析成cast(x as nvarchar)
问题描述及重现步骤:
在where条件查询中,使用枚举.tostring(),比如 OrderTab.where(t=>t.Code = OrderType.No.ToString()).ToList();此方式会被解析为 “WHERE (a.[Code] = cast(5 as nvarchar(100)))” 预期结果是想要“WHERE (a.[Code] = ‘No’)”
数据库的具体版本
Sql Server 2008R2
``
#### 安装的包
Freesql 3.2.669.0 FreeSql.Provider.SqlServer 3.2.669.0
#### .net framework/. net core? 及具体版本
.net framework 4.6.1
现在我的临时解决办法是 var typeNo=OrderType.No.ToString(); OrderTab.where(t=>t.Code = typeNo).ToList(); 但每个条件中就要创建一个变量。。。
.Where(a => object.Equals(a.Code, OrderType.No))
这个可以,谢谢。啥时候可以t.Code.Equals(OrderType.No)
:)