- 修复 FreeSql.DbContext 对同一实体重复 Update,第二次无效的 Bug;

This commit is contained in:
28810
2020-09-14 11:33:20 +08:00
parent ad12402926
commit 704e59bf21
4 changed files with 31 additions and 19 deletions

View File

@@ -408,7 +408,18 @@ namespace FreeSql
foreach (var item in data)
{
if (_dicUpdateTimes.ContainsKey(item))
{
var itemCopy = CreateEntityState(item).Value;
await DbContextFlushCommandAsync();
if (_table.VersionColumn != null)
{
var itemVersion = _db.OrmOriginal.GetEntityValueWithPropertyName(_entityType, item, _table.VersionColumn.CsName);
_db.OrmOriginal.MapEntityValue(_entityType, itemCopy, item);
_db.OrmOriginal.SetEntityValueWithPropertyName(_entityType, item, _table.VersionColumn.CsName, itemVersion);
}
else
_db.OrmOriginal.MapEntityValue(_entityType, itemCopy, item);
}
_dicUpdateTimes.Add(item, 1);
var state = CreateEntityState(item);

View File

@@ -451,7 +451,18 @@ namespace FreeSql
foreach (var item in data)
{
if (_dicUpdateTimes.ContainsKey(item))
{
var itemCopy = CreateEntityState(item).Value;
DbContextFlushCommand();
if (_table.VersionColumn != null)
{
var itemVersion = _db.OrmOriginal.GetEntityValueWithPropertyName(_entityType, item, _table.VersionColumn.CsName);
_db.OrmOriginal.MapEntityValue(_entityType, itemCopy, item);
_db.OrmOriginal.SetEntityValueWithPropertyName(_entityType, item, _table.VersionColumn.CsName, itemVersion);
}
else
_db.OrmOriginal.MapEntityValue(_entityType, itemCopy, item);
}
_dicUpdateTimes.Add(item, 1);
var state = CreateEntityState(item);

View File

@@ -329,7 +329,10 @@
</member>
<member name="M:FreeSql.IBaseRepository`1.BeginEdit(System.Collections.Generic.List{`0})">
<summary>
<EFBFBD>憪讠<EFBFBD>颲烐㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EndEdit <20><><EFBFBD><EFBFBD>箸溶<E7AEB8>𨬭<EFBFBD><F0A8ACAD><EFBFBD><E5AF9E>芣𣈲<E88AA3><F0A388B2><EFBFBD>銵冽<E98AB5>雿頣<E99BBF>銝齿𣈲<E9BDBF><F0A388B2><EFBFBD><EFBFBD><E88AB8>抒漣<E68A92>𥪯<EFBFBD><EFBFBD>
开始编辑数据,然后调用方法 EndEdit 分析出添加、修改、删除 SQL 语句进行执行<para></para>
场景winform 加载表数据后,一顿添加、修改、删除操作之后,最后才点击【保存】<para></para><para></para>
示例https://github.com/dotnetcore/FreeSql/issues/397<para></para>
注意:* 本方法只支持单表操作,不支持导航属性级联保存
</summary>
<param name="data"></param>
</member>
@@ -531,21 +534,3 @@
</member>
</members>
</doc>
me="M:FreeSqlDbContextExtensions.CreateUnitOfWork(IFreeSql)">
<summary>
<20>𥕦遣<F0A595A6><EFBFBD>隞枏<E99A9E><E69E8F><EFBFBD><E8A098><EFBFBD>極雿𨅯<E99BBF><F0A885AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿輻鍂 using <20><>鉄雿輻鍂
</summary>
<param name="that"></param>
<returns></returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
<20><EFBFBD>瘜典<E7989C> Repository嚗<79>虾隞亙<E99A9E><E4BA99><EFBFBD><EFBFBD><E8AAA8>䌊銵諹<E98AB5><E8ABB9><EFBFBD>
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
</members>
</doc>