- 优化 DbContext/Repository Update 实体有 ServerTime 既使无状态变化也必然更新的逻辑;

This commit is contained in:
2881099
2022-04-12 21:44:31 +08:00
parent 46ad51c7e0
commit 91522386b1
5 changed files with 60 additions and 10 deletions

View File

@ -593,6 +593,55 @@ namespace FreeSql.Tests
public Guid Id { get; set; }
public string Name { get; set; }
}
[Fact]
public void BeginEditIdentity()
{
g.sqlite.Delete<BeginEdit02>().Where("1=1").ExecuteAffrows();
var repo = g.sqlite.GetRepository<BeginEdit02>();
var cts = new[] {
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1_1" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1_2" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1_3" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2_1" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2_2" }
}.ToList();
repo.Insert(cts);
repo.BeginEdit(cts);
cts.Add(new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2_3" });
cts[0].Name = "123123";
cts.RemoveAt(1);
Assert.Equal(3, repo.EndEdit());
g.sqlite.Delete<BeginEdit02>().Where("1=1").ExecuteAffrows();
repo = g.sqlite.GetRepository<BeginEdit02>();
cts = repo.Select.ToList();
repo.BeginEdit(cts);
cts.AddRange(new[] {
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1_1" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1_2" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>1_3" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2_1" },
new BeginEdit02 { Name = "<22><><EFBFBD><EFBFBD>2_2" }
});
Assert.Equal(7, repo.EndEdit());
}
class BeginEdit02
{
[Column(IsIdentity = true)]
public int Id { get; set; }
public string Name { get; set; }
[Column(ServerTime = DateTimeKind.Utc)]
public DateTime UpdateTime { get; set; }
}
[Fact]
public void OrmScoped()