- 优化 DbContext/Repository Update 实体有 ServerTime 既使无状态变化也必然更新的逻辑;

This commit is contained in:
2881099
2022-04-12 21:44:31 +08:00
parent 46ad51c7e0
commit 91522386b1
5 changed files with 60 additions and 10 deletions

View File

@ -17,6 +17,7 @@ namespace FreeSql.Internal.Model
public Dictionary<string, ColumnInfo> ColumnsByCs { get; set; } = new Dictionary<string, ColumnInfo>(StringComparer.CurrentCultureIgnoreCase);
public Dictionary<string, ColumnInfo> ColumnsByCsIgnore { get; set; } = new Dictionary<string, ColumnInfo>(StringComparer.CurrentCultureIgnoreCase);
public ColumnInfo[] ColumnsByPosition { get; set; }
public ColumnInfo[] ColumnsByCanUpdateDbUpdateValue { get; set; }
public ColumnInfo[] Primarys { get; set; }
public IndexInfo[] Indexes { get; set; }
public string CsName { get; set; }

View File

@ -484,6 +484,7 @@ namespace FreeSql.Internal
trytb.ColumnsByPosition = columnsList.Where(a => a.Attribute.Position > 0).OrderBy(a => a.Attribute.Position)
.Concat(columnsList.Where(a => a.Attribute.Position == 0))
.Concat(columnsList.Where(a => a.Attribute.Position < 0).OrderBy(a => a.Attribute.Position)).ToArray();
trytb.ColumnsByCanUpdateDbUpdateValue = columnsList.Where(a => a.Attribute.CanUpdate == true && string.IsNullOrEmpty(a.DbUpdateValue) == false).ToArray();
trytb.Primarys = trytb.Columns.Values.Where(a => a.Attribute.IsPrimary == true).ToArray();
if (trytb.Primarys.Any() == false)