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);
|
||||
}
|
||||
|
||||
[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)]
|
||||
public void TestNormalUpdate()
|
||||
{
|
||||
@ -209,5 +327,7 @@ WHERE (""Id"" = '{primary}')", sql);
|
||||
.Set(q => q.UpdateTime, DateTime.Now)
|
||||
.ExecuteAffrowsAsync();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -14,6 +14,104 @@ namespace FreeSql.Tests.QuestDb.Crud
|
||||
[TestCaseOrderer("FreeSql.Tests.QuestDb.Utils.TestOrders", "FreeSql.Tests")]
|
||||
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语句
|
||||
.UseNoneCommandParameter(true)
|
||||
.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