diff --git a/FreeSql.DbContext/DbSet/DbSetSync.cs b/FreeSql.DbContext/DbSet/DbSetSync.cs index a6dddb08..2377a59c 100644 --- a/FreeSql.DbContext/DbSet/DbSetSync.cs +++ b/FreeSql.DbContext/DbSet/DbSetSync.cs @@ -545,7 +545,7 @@ namespace FreeSql /// public void BeginEdit(List data) { - if (data == null || data.Any() == false) return; + if (data == null) return; if (_table.Primarys.Any() == false) throw new Exception($"不可进行编辑,实体没有主键:{_db.OrmOriginal.GetEntityString(_entityType, data.First())}"); _statesEditing.Clear(); _dataEditing = data; diff --git a/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs b/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs index a65081bb..0e65d5a9 100644 --- a/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs +++ b/FreeSql.Tests/FreeSql.Tests.DbContext/RepositoryTests.cs @@ -552,6 +552,23 @@ namespace FreeSql.Tests cts.RemoveAt(1); Assert.Equal(3, repo.EndEdit()); + + g.sqlite.Delete().Where("1=1").ExecuteAffrows(); + repo = g.sqlite.GetRepository(); + cts = repo.Select.ToList(); + repo.BeginEdit(cts); + + cts.AddRange(new[] { + new BeginEdit01 { Name = "1" }, + new BeginEdit01 { Name = "1_1" }, + new BeginEdit01 { Name = "1_2" }, + new BeginEdit01 { Name = "1_3" }, + new BeginEdit01 { Name = "2" }, + new BeginEdit01 { Name = "2_1" }, + new BeginEdit01 { Name = "2_2" } + }); + + Assert.Equal(7, repo.EndEdit()); } class BeginEdit01 {