diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 7add2edf..aff3ea4b 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -422,11 +422,23 @@ namespace base_entity { public Guid id { get; set; } public string name { get; set; } - [Column(IsVersion = true, DbType = "timestamp", CanInsert = false, CanUpdate = false)] + [Column(IsVersion = true)] public byte[] version { get; set; } } public static void VersionBytes(IFreeSql fsql) { + + fsql.Aop.ConfigEntityProperty += (_, e) => + { + if (fsql.Ado.DataType == DataType.SqlServer && + e.Property.Name == "version") + { + e.ModifyResult.DbType = "timestamp"; + e.ModifyResult.CanInsert = false; + e.ModifyResult.CanUpdate = false; + } + }; + fsql.Delete().Where("1=1").ExecuteAffrows(); var item = new VersionBytes01 { name = "name01" }; fsql.Insert(item).ExecuteAffrows(); @@ -537,7 +549,15 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion fsql.UseJsonMap(); - VersionBytes(fsql); + + var items = new List(); + for (var a = 0; a < 3; a++) items.Add(new User1 { Id = Guid.NewGuid(), Avatar = $"avatar{a}" }); + var sqltest01 = fsql.Update() + .SetSource(items) + .UpdateColumns(a => a.Avatar) + .Set(a => a.Sort + 1).ToSql(); + + //VersionBytes(fsql); fsql.Delete().Where(a => true).ExecuteAffrows(); diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 537315e2..26522f10 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -800,5 +800,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index 780761b4..1a032250 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -1129,7 +1129,7 @@ namespace FreeSql.Internal.CommonProvider return; if (_setIncr.Length > 0) - sb.Append(_set.Length > 0 ? _setIncr.ToString() : _setIncr.ToString().Substring(2)); + sb.Append(_set.Length > 0 || _source.Any() ? _setIncr.ToString() : _setIncr.ToString().Substring(2)); if (_source.Any() == false) { diff --git a/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseUpdate.cs b/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseUpdate.cs index 1faf9321..88582c31 100644 --- a/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseUpdate.cs +++ b/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseUpdate.cs @@ -189,7 +189,7 @@ namespace FreeSql.ClickHouse.Curd return; if (_setIncr.Length > 0) - sb.Append(_set.Length > 0 ? _setIncr.ToString() : _setIncr.ToString().Substring(2)); + sb.Append(_set.Length > 0 || _source.Any() ? _setIncr.ToString() : _setIncr.ToString().Substring(2)); if (_source.Any() == false) {