## v0.3.27

- 增加 行级锁功能,适用修改实体;
- 增加 FreeSql.Repository 默认依赖注入的方式,同时保留原有 Autofac;
- 优化 FreeSql.Repository Insert 逻辑,参考了 FreeSql.DbContext;
- 优化 FreeSql.IUpdate 参照 IInsert 对大批量更新,拆分执行;
- 修复 FreeSql.IInsert ClearData 重复利用的 bug(使用 IgnoreColumns 进行大批量插入时会发生);
This commit is contained in:
28810
2019-03-29 21:28:43 +08:00
parent 578615ed3c
commit df8845e5b1
33 changed files with 831 additions and 421 deletions

View File

@ -107,6 +107,11 @@ namespace FreeSql.Internal {
trytb.Columns.Add(colattr.Name, col);
trytb.ColumnsByCs.Add(p.Name, col);
}
trytb.VersionColumn = trytb.Columns.Values.Where(a => a.Attribute.IsVersion == true).LastOrDefault();
if (trytb.VersionColumn != null) {
if (trytb.VersionColumn.CsType.IsNullableType() || trytb.VersionColumn.CsType.IsNumberType() == false)
throw new Exception($"属性{trytb.VersionColumn.CsName} 被标注为行锁(乐观锁)(IsVersion),但其必须为数字类型,并且不可为 Nullable");
}
trytb.Primarys = trytb.Columns.Values.Where(a => a.Attribute.IsPrimary == true).ToArray();
if (trytb.Primarys.Any() == false) {
var identcol = trytb.Columns.Values.Where(a => a.Attribute.IsIdentity == true).FirstOrDefault();