mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 优化 AsTreeCte 对 MySql 5.6 的兼容;#536
This commit is contained in:
@ -1989,43 +1989,49 @@ WHERE ((b.`IsFinished` OR a.`TaskType` = 3) AND b.`EnabledMark` = 1)", groupsql1
|
||||
Assert.Equal("110100", t3[0].Childs[0].Childs[0].Code);
|
||||
Assert.Equal("110101", t3[0].Childs[0].Childs[1].Code);
|
||||
|
||||
//t3 = fsql.Select<VM_District_Child>().Where(a => a.Name == "中国").AsTreeCte().OrderBy(a => a.Code).ToTreeList();
|
||||
//Assert.Single(t3);
|
||||
//Assert.Equal("100000", t3[0].Code);
|
||||
//Assert.Single(t3[0].Childs);
|
||||
//Assert.Equal("110000", t3[0].Childs[0].Code);
|
||||
//Assert.Equal(2, t3[0].Childs[0].Childs.Count);
|
||||
//Assert.Equal("110100", t3[0].Childs[0].Childs[0].Code);
|
||||
//Assert.Equal("110101", t3[0].Childs[0].Childs[1].Code);
|
||||
t3 = fsql.Select<VM_District_Child>().Where(a => a.Name == "中国").AsTreeCte().OrderBy(a => a.Code).ToTreeList();
|
||||
Assert.Single(t3);
|
||||
Assert.Equal("100000", t3[0].Code);
|
||||
Assert.Single(t3[0].Childs);
|
||||
Assert.Equal("110000", t3[0].Childs[0].Code);
|
||||
Assert.Equal(2, t3[0].Childs[0].Childs.Count);
|
||||
Assert.Equal("110100", t3[0].Childs[0].Childs[0].Code);
|
||||
Assert.Equal("110101", t3[0].Childs[0].Childs[1].Code);
|
||||
|
||||
//t3 = fsql.Select<VM_District_Child>().Where(a => a.Name == "中国").AsTreeCte().OrderBy(a => a.Code).ToList();
|
||||
//Assert.Equal(4, t3.Count);
|
||||
//Assert.Equal("100000", t3[0].Code);
|
||||
//Assert.Equal("110000", t3[1].Code);
|
||||
//Assert.Equal("110100", t3[2].Code);
|
||||
//Assert.Equal("110101", t3[3].Code);
|
||||
t3 = fsql.Select<VM_District_Child>().Where(a => a.Name == "中国").AsTreeCte().OrderBy(a => a.Code).ToList();
|
||||
Assert.Equal(4, t3.Count);
|
||||
Assert.Equal("100000", t3[0].Code);
|
||||
Assert.Equal("110000", t3[1].Code);
|
||||
Assert.Equal("110100", t3[2].Code);
|
||||
Assert.Equal("110101", t3[3].Code);
|
||||
|
||||
//t3 = fsql.Select<VM_District_Child>().Where(a => a.Name == "北京").AsTreeCte().OrderBy(a => a.Code).ToList();
|
||||
//Assert.Equal(3, t3.Count);
|
||||
//Assert.Equal("110000", t3[0].Code);
|
||||
//Assert.Equal("110100", t3[1].Code);
|
||||
//Assert.Equal("110101", t3[2].Code);
|
||||
t3 = fsql.Select<VM_District_Child>().Where(a => a.Name == "北京").AsTreeCte().OrderBy(a => a.Code).ToList();
|
||||
Assert.Equal(3, t3.Count);
|
||||
Assert.Equal("110000", t3[0].Code);
|
||||
Assert.Equal("110100", t3[1].Code);
|
||||
Assert.Equal("110101", t3[2].Code);
|
||||
|
||||
//var select = fsql.Select<VM_District_Child>()
|
||||
// .Where(a => a.Name == "中国")
|
||||
// .AsTreeCte()
|
||||
// //.OrderBy("a.cte_level desc") //递归层级
|
||||
// ;
|
||||
//// var list = select.ToList(); //自己调试看查到的数据
|
||||
//select.ToUpdate().Set(a => a.testint, 855).ExecuteAffrows();
|
||||
//Assert.Equal(855, fsql.Select<VM_District_Child>()
|
||||
// .Where(a => a.Name == "中国")
|
||||
// .AsTreeCte().Distinct().First(a => a.testint));
|
||||
var t4 = fsql.Select<VM_District_Child>().Where(a => a.Name == "东城区").AsTreeCte(up: true).ToList();
|
||||
Assert.Equal(3, t4.Count);
|
||||
Assert.Equal("110101", t4[0].Code);
|
||||
Assert.Equal("110000", t4[1].Code);
|
||||
Assert.Equal("100000", t4[2].Code);
|
||||
|
||||
//Assert.Equal(4, select.ToDelete().ExecuteAffrows());
|
||||
//Assert.False(fsql.Select<VM_District_Child>()
|
||||
// .Where(a => a.Name == "中国")
|
||||
// .AsTreeCte().Any());
|
||||
var select = fsql.Select<VM_District_Child>()
|
||||
.Where(a => a.Name == "中国")
|
||||
.AsTreeCte()
|
||||
//.OrderBy("a.cte_level desc") //递归层级
|
||||
;
|
||||
// var list = select.ToList(); //自己调试看查到的数据
|
||||
select.ToUpdate().Set(a => a.testint, 855).ExecuteAffrows();
|
||||
Assert.Equal(855, fsql.Select<VM_District_Child>()
|
||||
.Where(a => a.Name == "中国")
|
||||
.AsTreeCte().Distinct().First(a => a.testint));
|
||||
|
||||
Assert.Equal(4, select.ToDelete().ExecuteAffrows());
|
||||
Assert.False(fsql.Select<VM_District_Child>()
|
||||
.Where(a => a.Name == "中国")
|
||||
.AsTreeCte().Any());
|
||||
}
|
||||
|
||||
[Table(Name = "D_District")]
|
||||
|
@ -30,7 +30,7 @@ namespace FreeSql.Tests
|
||||
});
|
||||
Assert.Equal(id, item2.xxx);
|
||||
|
||||
fsql.Delete<ts_iif>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<ts_iif_topic>().Where("1=1").ExecuteAffrows();
|
||||
fsql.Delete<ts_iif_type>().Where("1=1").ExecuteAffrows();
|
||||
var typeid = Guid.NewGuid();
|
||||
fsql.Insert(new ts_iif_type { id = typeid, name = "type001" }).ExecuteAffrows();
|
||||
|
@ -9,7 +9,7 @@ public class g
|
||||
{
|
||||
|
||||
static Lazy<IFreeSql> mysqlLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
|
||||
.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=5")
|
||||
.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=5;Allow User Variables=True")
|
||||
//.UseConnectionFactory(FreeSql.DataType.MySql, () => new MySql.Data.MySqlClient.MySqlConnection("Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;"))
|
||||
//.UseConnectionString(FreeSql.DataType.MySql, "Data Source=192.168.164.10;Port=33061;User ID=root;Password=root;Initial Catalog=cccddd_mysqlconnector;Charset=utf8;SslMode=none;Max pool size=10")
|
||||
.UseAutoSyncStructure(true)
|
||||
|
Reference in New Issue
Block a user