在新增记录时,若设置了ColumnName并调用InsertColumns时,未按预期运行 返回

反馈
56
该叫什么 fn 发布于1周前
悬赏:5 飞吻

已提交 github issues#654

---------------------------

Issues#291 使用列別名(ColumnName)的情況下IgnoreColumns异常 情况相同。

使用 IInsertable<T> InsertColumns(Expression<Func<T, object>> columns) 方法无法正确识别标记了 ColumnName 的列,如

[SugarColumn(ColumnName = "locate_source")]
public string LocateSource { get; set; }

源码内部以 PropertyName 为准,但在执行获取操作列时拿到的是数据库映射列

var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList(); //获取的是DbColumnName
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => ignoreColumns.Any(ig => ig.Equals(, StringComparison.CurrentCultureIgnoreCase))).ToList(); //这里使用PropertyName对比

是否可以与方法 IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns) 一样,添加同时对比 DbColumnNamePropertyName 属性?


热忱回答0

版块

学习文档

最新会员

发布达人

回贴达人