解决 SqlServer 批量添加参数最多 2100 个参数

This commit is contained in:
28810
2019-03-12 20:01:20 +08:00
parent f653f03073
commit aa2040a629
7 changed files with 273 additions and 43 deletions

View File

@ -68,6 +68,12 @@ namespace FreeSql.Tests.SqlServer {
var item = g.sqlserver.Insert<Topic>(new Topic { Title = "xxxx", CreateTime = DateTime.Now }).ExecuteInserted();
Assert.Equal(item[0].Id, delete.Where(a => a.Id == item[0].Id).ExecuteDeleted()[0].Id);
var items = Enumerable.Range(0, 3001).Select(a => new Topic { Title = "xxxx" + a, CreateTime = DateTime.Now });
var itemsInserted = g.sqlserver.Insert<Topic>(items).ExecuteInserted();
Assert.Equal(items.First().Title, itemsInserted[0].Title);
Assert.Equal(itemsInserted[0].Id, delete.Where(a => a.Id == itemsInserted[0].Id).ExecuteDeleted()[0].Id);
}
[Fact]

View File

@ -66,6 +66,9 @@ namespace FreeSql.Tests.SqlServer {
Assert.Equal(1, insert.AppendData(items.First()).ExecuteAffrows());
Assert.Equal(10, insert.AppendData(items).ExecuteAffrows());
items = Enumerable.Range(0, 9989).Select(a => new Topic { Title = "newtitle" + a, CreateTime = DateTime.Now }).ToList();
Assert.Equal(9989, g.sqlserver.Insert<Topic>(items).ExecuteAffrows());
}
[Fact]
public void ExecuteIdentity() {
@ -73,6 +76,11 @@ namespace FreeSql.Tests.SqlServer {
for (var a = 0; a < 10; a++) items.Add(new Topic { Id = a + 1, Title = $"newtitle{a}", Clicks = a * 100, CreateTime = DateTime.Now });
Assert.NotEqual(0, insert.AppendData(items.First()).ExecuteIdentity());
items = Enumerable.Range(0, 9999).Select(a => new Topic { Title = "newtitle" + a, CreateTime = DateTime.Now }).ToList();
var lastId = g.sqlite.Select<Topic>().Max(a => a.Id);
Assert.NotEqual(lastId, g.sqlserver.Insert<Topic>(items).ExecuteIdentity());
}
[Fact]
public void ExecuteInserted() {
@ -80,6 +88,11 @@ namespace FreeSql.Tests.SqlServer {
for (var a = 0; a < 10; a++) items.Add(new Topic { Id = a + 1, Title = $"newtitle{a}", Clicks = a * 100, CreateTime = DateTime.Now });
var items2 = insert.AppendData(items).ExecuteInserted();
items = Enumerable.Range(0, 9990).Select(a => new Topic { Title = "newtitle" + a, CreateTime = DateTime.Now }).ToList();
var itemsInserted = g.sqlserver.Insert<Topic>(items).ExecuteInserted();
Assert.Equal(items.First().Title, itemsInserted.First().Title);
Assert.Equal(items.Last().Title, itemsInserted.Last().Title);
}
[Fact]