mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-17 19:43:21 +08:00
添加QuestDb RestAPI支持
This commit is contained in:
parent
71beabf8b4
commit
3f9afdad85
@ -110,6 +110,124 @@ namespace FreeSql.Tests.QuestDb.Crud
|
|||||||
Assert.True(result > 0);
|
Assert.True(result > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task TestRestInsertAsync()
|
||||||
|
{
|
||||||
|
var result = await restFsql.Insert(new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "IdAsync",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsert",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
}).ExecuteAffrowsAsync();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task TestRestInsertBatchAsync()
|
||||||
|
{
|
||||||
|
var list = new List<QuestDb_Model_Test01>()
|
||||||
|
{
|
||||||
|
new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "1",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsertAsync",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
},
|
||||||
|
new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "2",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsertAsync",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
},
|
||||||
|
new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "3",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsertAsync",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
},
|
||||||
|
};
|
||||||
|
var result = await restFsql.Insert(list).ExecuteAffrowsAsync();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task TestRestInsertColumnsAsync()
|
||||||
|
{
|
||||||
|
var list = new List<QuestDb_Model_Test01>()
|
||||||
|
{
|
||||||
|
new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "1",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsert",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
},
|
||||||
|
new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "2",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsert",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
},
|
||||||
|
new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = "3",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsert",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
},
|
||||||
|
};
|
||||||
|
var result = await restFsql.Insert(list).IgnoreColumns(q => q.NameInsert).ExecuteAffrowsAsync();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task TestSqlBulkCopy()
|
||||||
|
{
|
||||||
|
var list = new List<QuestDb_Model_Test01>();
|
||||||
|
for (int i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
list.Add(new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = Guid.NewGuid().ToString(),
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100 + i,
|
||||||
|
Id = "1",
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsertAsync",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var result = await restFsql.Insert(list).ExecuteBulkCopyAsync();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Fact, Order(4)]
|
[Fact, Order(4)]
|
||||||
public void TestNormalUpdate()
|
public void TestNormalUpdate()
|
||||||
{
|
{
|
||||||
@ -209,5 +327,7 @@ WHERE (""Id"" = '{primary}')", sql);
|
|||||||
.Set(q => q.UpdateTime, DateTime.Now)
|
.Set(q => q.UpdateTime, DateTime.Now)
|
||||||
.ExecuteAffrowsAsync();
|
.ExecuteAffrowsAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -14,6 +14,104 @@ namespace FreeSql.Tests.QuestDb.Crud
|
|||||||
[TestCaseOrderer("FreeSql.Tests.QuestDb.Utils.TestOrders", "FreeSql.Tests")]
|
[TestCaseOrderer("FreeSql.Tests.QuestDb.Utils.TestOrders", "FreeSql.Tests")]
|
||||||
public class QuestDbTestUpdate
|
public class QuestDbTestUpdate
|
||||||
{
|
{
|
||||||
//多线程以及questdb问题转移至 insert中测试
|
[Fact]
|
||||||
|
public void TestNormalRestUpdate()
|
||||||
|
{
|
||||||
|
var updateTime = DateTime.Now;
|
||||||
|
var updateObj = restFsql.Update<QuestDb_Model_Test01>()
|
||||||
|
.Set(q => q.NameUpdate, "UpdateNow")
|
||||||
|
// .Set(q => q.CreateTime, DateTime.Now) 分表的时间不可以随便改
|
||||||
|
.Where(q => q.Id == "1");
|
||||||
|
var updateSql = updateObj.ToSql();
|
||||||
|
Debug.WriteLine(updateSql);
|
||||||
|
var sql =
|
||||||
|
$@"UPDATE ""QuestDb_Model_Test01"" SET ""NameUpdate"" = 'UpdateNow'
|
||||||
|
WHERE (""Id"" = '1')";
|
||||||
|
Debug.WriteLine(sql);
|
||||||
|
Assert.Equal(updateSql, sql);
|
||||||
|
var result = updateObj.ExecuteAffrows();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void TestRestUpdateByModel()
|
||||||
|
{
|
||||||
|
var primary = Guid.NewGuid().ToString();
|
||||||
|
//先插入
|
||||||
|
restFsql.Insert(new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = primary,
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = primary,
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsert",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
}).ExecuteAffrows();
|
||||||
|
var updateModel = new QuestDb_Model_Test01
|
||||||
|
{
|
||||||
|
Primarys = primary,
|
||||||
|
Id = primary,
|
||||||
|
Activos = 12.65,
|
||||||
|
};
|
||||||
|
var updateObj = restFsql.Update<QuestDb_Model_Test01>().SetSourceIgnore(updateModel, o => o == null);
|
||||||
|
var sql = updateObj.ToSql();
|
||||||
|
Debug.WriteLine(sql);
|
||||||
|
var result = updateObj.ExecuteAffrows();
|
||||||
|
var resultAsync = restFsql.Update<QuestDb_Model_Test01>().SetSourceIgnore(updateModel, o => o == null)
|
||||||
|
.ExecuteAffrows();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
Assert.True(resultAsync > 0);
|
||||||
|
Assert.Equal(
|
||||||
|
@$"UPDATE ""QuestDb_Model_Test01"" SET ""Primarys"" = '{primary}', ""NameInsert"" = 'NameDefault', ""Activos"" = 12.65
|
||||||
|
WHERE (""Id"" = '{primary}')", sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task TestRestUpdateIgnoreColumnsAsync()
|
||||||
|
{
|
||||||
|
var primary = Guid.NewGuid().ToString();
|
||||||
|
var updateTime = DateTime.Now;
|
||||||
|
//先插入
|
||||||
|
restFsql.Insert(new QuestDb_Model_Test01()
|
||||||
|
{
|
||||||
|
Primarys = primary,
|
||||||
|
CreateTime = DateTime.Now,
|
||||||
|
Activos = 100.21,
|
||||||
|
Id = primary,
|
||||||
|
IsCompra = true,
|
||||||
|
NameInsert = "NameInsert",
|
||||||
|
NameUpdate = "NameUpdate"
|
||||||
|
}).ExecuteAffrows();
|
||||||
|
var updateModel = new QuestDb_Model_Test01
|
||||||
|
{
|
||||||
|
Id = primary,
|
||||||
|
Activos = 12.65,
|
||||||
|
IsCompra = true,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
|
};
|
||||||
|
var updateObj = restFsql.Update<QuestDb_Model_Test01>().SetSource(updateModel)
|
||||||
|
.IgnoreColumns(q => new { q.Id, q.CreateTime });
|
||||||
|
var sql = updateObj.ToSql();
|
||||||
|
Debug.WriteLine(sql);
|
||||||
|
var result = updateObj.ExecuteAffrows();
|
||||||
|
var resultAsync = await restFsql.Update<QuestDb_Model_Test01>().SetSource(updateModel)
|
||||||
|
.IgnoreColumns(q => new { q.Id, q.CreateTime }).ExecuteAffrowsAsync();
|
||||||
|
Assert.True(result > 0);
|
||||||
|
Assert.True(resultAsync > 0);
|
||||||
|
Assert.Equal(
|
||||||
|
$@"UPDATE ""QuestDb_Model_Test01"" SET ""Primarys"" = NULL, ""NameUpdate"" = NULL, ""NameInsert"" = 'NameDefault', ""Activos"" = 12.65, ""UpdateTime"" = NULL, ""IsCompra"" = True
|
||||||
|
WHERE (""Id"" = '{primary}')", sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task TestUpdateToUpdateAsync()
|
||||||
|
{
|
||||||
|
//官网demo有问题,暂时放弃此功能
|
||||||
|
var result = await restFsql.Select<QuestDb_Model_Test01>().Where(q => q.Id == "IdAsync" && q.NameInsert == null)
|
||||||
|
.ToUpdate()
|
||||||
|
.Set(q => q.UpdateTime, DateTime.Now)
|
||||||
|
.ExecuteAffrowsAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -15,5 +15,12 @@ namespace FreeSql.Tests.QuestDb
|
|||||||
.UseMonitorCommand(cmd => Debug.WriteLine($"Sql:{cmd.CommandText}")) //监听SQL语句
|
.UseMonitorCommand(cmd => Debug.WriteLine($"Sql:{cmd.CommandText}")) //监听SQL语句
|
||||||
.UseNoneCommandParameter(true)
|
.UseNoneCommandParameter(true)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
|
public static IFreeSql restFsql = new FreeSql.FreeSqlBuilder()
|
||||||
|
.UseConnectionString(FreeSql.DataType.QuestDb,
|
||||||
|
@"host=192.168.0.36;port=8812;username=admin;password=quest;database=qdb;ServerCompatibilityMode=NoTypeLoading;")
|
||||||
|
.UseMonitorCommand(cmd => Debug.WriteLine($"Sql:{cmd.CommandText}")) //监听SQL语句
|
||||||
|
.UseQuestDbRestAPI("192.168.0.36:9001", "admin", "ushahL(aer2r")
|
||||||
|
.Build();
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user