mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 Repository/DbContext 批量修改可能无效的 bug;#709
This commit is contained in:
parent
7826089b64
commit
daffe5c082
@ -28,6 +28,7 @@ namespace FreeSql
|
|||||||
|
|
||||||
PrevCommandInfo oldinfo = null;
|
PrevCommandInfo oldinfo = null;
|
||||||
var states = new List<object>();
|
var states = new List<object>();
|
||||||
|
var flagFuncUpdateLaststate = false;
|
||||||
|
|
||||||
Task<int> dbsetBatch(string method)
|
Task<int> dbsetBatch(string method)
|
||||||
{
|
{
|
||||||
@ -77,7 +78,11 @@ namespace FreeSql
|
|||||||
{ //没有执行更新
|
{ //没有执行更新
|
||||||
var laststate = states[states.Count - 1];
|
var laststate = states[states.Count - 1];
|
||||||
states.Clear();
|
states.Clear();
|
||||||
if (affrows == -997) states.Add(laststate); //保留最后一个
|
if (affrows == -997)
|
||||||
|
{
|
||||||
|
flagFuncUpdateLaststate = true;
|
||||||
|
states.Add(laststate); //保留最后一个
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (affrows > 0)
|
if (affrows > 0)
|
||||||
{
|
{
|
||||||
@ -85,7 +90,11 @@ namespace FreeSql
|
|||||||
var islastNotUpdated = states.Count != affrows;
|
var islastNotUpdated = states.Count != affrows;
|
||||||
var laststate = states[states.Count - 1];
|
var laststate = states[states.Count - 1];
|
||||||
states.Clear();
|
states.Clear();
|
||||||
if (islastNotUpdated) states.Add(laststate); //保留最后一个
|
if (islastNotUpdated)
|
||||||
|
{
|
||||||
|
flagFuncUpdateLaststate = true;
|
||||||
|
states.Add(laststate); //保留最后一个
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -94,6 +103,7 @@ namespace FreeSql
|
|||||||
var info = _prevCommands.Any() ? _prevCommands.Dequeue() : null;
|
var info = _prevCommands.Any() ? _prevCommands.Dequeue() : null;
|
||||||
if (oldinfo == null) oldinfo = info;
|
if (oldinfo == null) oldinfo = info;
|
||||||
var isLiveUpdate = false;
|
var isLiveUpdate = false;
|
||||||
|
flagFuncUpdateLaststate = false;
|
||||||
|
|
||||||
if (_prevCommands.Any() == false && states.Any() ||
|
if (_prevCommands.Any() == false && states.Any() ||
|
||||||
info != null && oldinfo.changeType != info.changeType ||
|
info != null && oldinfo.changeType != info.changeType ||
|
||||||
@ -130,6 +140,9 @@ namespace FreeSql
|
|||||||
{
|
{
|
||||||
states.Add(info.state);
|
states.Add(info.state);
|
||||||
oldinfo = info;
|
oldinfo = info;
|
||||||
|
|
||||||
|
if (flagFuncUpdateLaststate && oldinfo.changeType == EntityChangeType.Update) //马上与上个元素比较
|
||||||
|
await funcUpdate(isLiveUpdate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isFlushCommanding = false;
|
isFlushCommanding = false;
|
||||||
|
@ -44,6 +44,7 @@ namespace FreeSql
|
|||||||
|
|
||||||
PrevCommandInfo oldinfo = null;
|
PrevCommandInfo oldinfo = null;
|
||||||
var states = new List<object>();
|
var states = new List<object>();
|
||||||
|
var flagFuncUpdateLaststate = false;
|
||||||
|
|
||||||
int dbsetBatch(string method)
|
int dbsetBatch(string method)
|
||||||
{
|
{
|
||||||
@ -92,7 +93,11 @@ namespace FreeSql
|
|||||||
{ //没有执行更新
|
{ //没有执行更新
|
||||||
var laststate = states[states.Count - 1];
|
var laststate = states[states.Count - 1];
|
||||||
states.Clear();
|
states.Clear();
|
||||||
if (affrows == -997) states.Add(laststate); //保留最后一个
|
if (affrows == -997)
|
||||||
|
{
|
||||||
|
flagFuncUpdateLaststate = true;
|
||||||
|
states.Add(laststate); //保留最后一个
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (affrows > 0)
|
if (affrows > 0)
|
||||||
{
|
{
|
||||||
@ -100,7 +105,11 @@ namespace FreeSql
|
|||||||
var islastNotUpdated = states.Count != affrows;
|
var islastNotUpdated = states.Count != affrows;
|
||||||
var laststate = states[states.Count - 1];
|
var laststate = states[states.Count - 1];
|
||||||
states.Clear();
|
states.Clear();
|
||||||
if (islastNotUpdated) states.Add(laststate); //保留最后一个
|
if (islastNotUpdated)
|
||||||
|
{
|
||||||
|
flagFuncUpdateLaststate = true;
|
||||||
|
states.Add(laststate); //保留最后一个
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -109,6 +118,7 @@ namespace FreeSql
|
|||||||
var info = _prevCommands.Any() ? _prevCommands.Dequeue() : null;
|
var info = _prevCommands.Any() ? _prevCommands.Dequeue() : null;
|
||||||
if (oldinfo == null) oldinfo = info;
|
if (oldinfo == null) oldinfo = info;
|
||||||
var isLiveUpdate = false;
|
var isLiveUpdate = false;
|
||||||
|
flagFuncUpdateLaststate = false;
|
||||||
|
|
||||||
if (_prevCommands.Any() == false && states.Any() ||
|
if (_prevCommands.Any() == false && states.Any() ||
|
||||||
info != null && oldinfo.changeType != info.changeType ||
|
info != null && oldinfo.changeType != info.changeType ||
|
||||||
@ -145,6 +155,9 @@ namespace FreeSql
|
|||||||
{
|
{
|
||||||
states.Add(info.state);
|
states.Add(info.state);
|
||||||
oldinfo = info;
|
oldinfo = info;
|
||||||
|
|
||||||
|
if (flagFuncUpdateLaststate && oldinfo.changeType == EntityChangeType.Update) //马上与上个元素比较
|
||||||
|
funcUpdate(isLiveUpdate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isFlushCommanding = false;
|
isFlushCommanding = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user