使用IConditionalModel动态查询时,如何避免参数超长的问题? 返回
SqlSugar
沟通中
3
185
Boss Zhou 发布于1个月前
悬赏:0 飞吻
例如我的字段名为 AAAAA_AAAAA_AAAAA_AAAAA_AAAAA, 已经超过30位了,在常规lambda查询时的注入配置是有效的:
if (column.PropertyName.Length > 20) { column.SqlParameterDbType = typeof(CommonPropertyConvert); }
我现在在构建动态的查询,需要用到IConditional,怎么样也能用类似上面的做法保证参数化之后不超过30位?
// 通过自定义的WhereModels构建CondtinalModels IEnumerable<IConditionalModel> conditionalModels = pagedQueryModel.WhereModels.Select(a => new ConditionalModel { ConditionalType = (ConditionalType)a.Conditional, FieldName = GetDbColumnName<T>(a.FieldName, isBaseEntity), // 此处的FieldName存在字段超过30位或接近30位的情况 FieldValue = a.FieldValue, CSharpTypeName = a.CSharpTypeName }); query = query.Where(conditionalModels.ToList());
热忱回答(3)
-
fate sta VIP01个月前
IsAutoCloseConnection =
true
,
DbType = DbType.Oracle,
ConnectionString = Connection,
MoreSettings =
new
ConnMoreSettings()
{
MaxParameterNameLength = 30
//设置最大长度
}
0 回复 -
fate sta VIP01个月前
看一下这个参数生不生效,如果不生效我在处理一下
0 回复 -
Boss Zhou VIP01个月前
@fate sta:谢谢回复。 已经验证,确实有效!
0 回复