diff --git a/Extensions/FreeSql.Extensions.AdoNet/FreeSql.Extensions.AdoNet.csproj b/Extensions/FreeSql.Extensions.AdoNet/FreeSql.Extensions.AdoNet.csproj
index d1b1a589..cb964f9e 100644
--- a/Extensions/FreeSql.Extensions.AdoNet/FreeSql.Extensions.AdoNet.csproj
+++ b/Extensions/FreeSql.Extensions.AdoNet/FreeSql.Extensions.AdoNet.csproj
@@ -26,7 +26,7 @@
- Volo.Abp.Dapper.FreeSqlExtensions.xml
+ FreeSql.Extensions.AdoNet.xml
3
diff --git a/Extensions/FreeSql.Extensions.AdoNet/Volo.Abp.Dapper.FreeSqlExtensions.xml b/Extensions/FreeSql.Extensions.AdoNet/FreeSql.Extensions.AdoNet.xml
similarity index 100%
rename from Extensions/FreeSql.Extensions.AdoNet/Volo.Abp.Dapper.FreeSqlExtensions.xml
rename to Extensions/FreeSql.Extensions.AdoNet/FreeSql.Extensions.AdoNet.xml
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 2acb6679..c46aa1e3 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -527,14 +527,5 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index c71bee29..71cbd656 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -3237,6 +3237,36 @@
Dict:key=属性名,value=注释
+
+
+ 更新实体的元数据
+
+
+
+
+ 执行更新的 SQL
+
+
+
+
+ 执行更新命令的参数
+
+
+
+
+ 执行更新命令影响的行
+
+
+
+
+ 更新的实体数量
+
+
+
+
+ 更新的实体
+
+
创建一个过滤器
diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
index 72a31b3b..8680da3e 100644
--- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs
+++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
@@ -109,12 +109,12 @@ namespace FreeSql.Internal.CommonProvider
return this;
}
- protected void ValidateVersionAndThrow(int affrows)
+ protected void ValidateVersionAndThrow(int affrows, string sql, DbParameter[] dbParms)
{
if (_table.VersionColumn != null && _source.Count > 0)
{
if (affrows != _source.Count)
- throw new Exception($"记录可能不存在,或者【行级乐观锁】版本过旧,更新数量{_source.Count},影响的行数{affrows}。");
+ throw new DbUpdateVersionException($"记录可能不存在,或者【行级乐观锁】版本过旧,更新数量{_source.Count},影响的行数{affrows}。", _table, sql, dbParms, affrows, _source.Select(a => (object)a));
foreach (var d in _source)
_orm.SetEntityIncrByWithPropertyName(_table.Type, d, _table.VersionColumn.CsName, 1);
}
@@ -299,7 +299,7 @@ namespace FreeSql.Internal.CommonProvider
try
{
affrows = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, dbParms);
- ValidateVersionAndThrow(affrows);
+ ValidateVersionAndThrow(affrows, sql, dbParms);
}
catch (Exception ex)
{
diff --git a/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs b/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs
index 2e85688f..4d0194aa 100644
--- a/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/UpdateProviderAsync.cs
@@ -168,7 +168,7 @@ namespace FreeSql.Internal.CommonProvider
try
{
affrows = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, dbParms);
- ValidateVersionAndThrow(affrows);
+ ValidateVersionAndThrow(affrows, sql, dbParms);
}
catch (Exception ex)
{
diff --git a/FreeSql/Internal/Exception/DbUpdateVersionException.cs b/FreeSql/Internal/Exception/DbUpdateVersionException.cs
new file mode 100644
index 00000000..d41ce6b1
--- /dev/null
+++ b/FreeSql/Internal/Exception/DbUpdateVersionException.cs
@@ -0,0 +1,50 @@
+using FreeSql.Internal.Model;
+using System;
+using System.Collections.Generic;
+using System.Data.Common;
+using System.Linq;
+using System.Text;
+
+namespace FreeSql.Internal
+{
+ public class DbUpdateVersionException : Exception
+ {
+ public DbUpdateVersionException(string message, TableInfo table, string sql, DbParameter[] dbParms, int affrows, IEnumerable