diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 132d875e..4854f49c 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -125,6 +125,13 @@ 清空状态数据 + + + 根据 lambda 条件删除数据 + + + + 添加 @@ -479,5 +486,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/BankOutlets.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/BankOutlets.cs index 25ab8b30..00453c66 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/BankOutlets.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/BankOutlets.cs @@ -13,63 +13,63 @@ using Newtonsoft.Json; using FreeSql.DataAnnotations; namespace FreeSql.Jhfw.Models { - public interface IBaseModel - { - TKey Id { get; set; } - } - [JsonObject(MemberSerialization.OptIn), Table(Name = "bank_outlets")] - public partial class BankOutlets : IBaseModel + public interface IBaseModel + { + TKey Id { get; set; } + } + [JsonObject(MemberSerialization.OptIn), Table(Name = "bank_outlets")] + public partial class BankOutlets : IBaseModel { - [JsonProperty] - public int? BankId { get => _BankId; set { - if (_BankId == value) return; - _BankId = value; - OneBanks = null; - }} - private int? _BankId; + [JsonProperty] + public int? BankId { get => _BankId; set { + if (_BankId == value) return; + _BankId = value; + OneBanks = null; + }} + private int? _BankId; - [JsonProperty] - public int? ParentId { get => _ParentId; set { - if (_ParentId == value) return; - _ParentId = value; - OneBankOutlets = null; - }} - private int? _ParentId; + [JsonProperty] + public int? ParentId { get => _ParentId; set { + if (_ParentId == value) return; + _ParentId = value; + OneBankOutlets = null; + }} + private int? _ParentId; - [JsonProperty] - public string Address { get; set; } = ""; + [JsonProperty] + public string Address { get; set; } = ""; - [JsonProperty, Column(DbType = "varchar(50)")] - public string Area { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(50)")] + public string Area { get; set; } = ""; - [JsonProperty, Column(Name = "ID", IsIdentity = true)] - public int Id { get; set; } + [JsonProperty, Column(Name = "ID", IsIdentity = true)] + public int Id { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Name { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(50)")] + public string Name { get; set; } = ""; - #region 外键 => 导航属性,ManyToOne/OneToOne + #region 外键 => 导航属性,ManyToOne/OneToOne - [Navigate("BankId")] - public virtual Banks OneBanks { get; set; } + [Navigate("BankId")] + public virtual Banks OneBanks { get; set; } - [Navigate("ParentId")] - public virtual BankOutlets OneBankOutlets { get; set; } + [Navigate("ParentId")] + public virtual BankOutlets OneBankOutlets { get; set; } - #endregion + #endregion - #region 外键 => 导航属性,OneToMany + #region 外键 => 导航属性,OneToMany - [Navigate("ParentId")] - public virtual List ManyBankOutlets { get; set; } + [Navigate("ParentId")] + public virtual List ManyBankOutlets { get; set; } - #endregion + #endregion - #region 外键 => 导航属性,ManyToMany + #region 外键 => 导航属性,ManyToMany - #endregion - } + #endregion + } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/Banks.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/Banks.cs index 17f26cdb..d1394362 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/Banks.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/Banks.cs @@ -13,54 +13,54 @@ using Newtonsoft.Json; using FreeSql.DataAnnotations; namespace FreeSql.Jhfw.Models { - [JsonObject(MemberSerialization.OptIn), Table(Name = "banks")] - public partial class Banks : IBaseModel + [JsonObject(MemberSerialization.OptIn), Table(Name = "banks")] + public partial class Banks : IBaseModel { - [JsonProperty, Column(DbType = "datetime")] - public DateTime? Addtime { get; set; } + [JsonProperty, Column(DbType = "datetime")] + public DateTime? Addtime { get; set; } - [JsonProperty, Column(DbType = "varchar(250)")] - public string Banner { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(250)")] + public string Banner { get; set; } = ""; - [JsonProperty, Column(DbType = "varchar(20)")] - public string City { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(20)")] + public string City { get; set; } = ""; - [JsonProperty, Column(Name = "ID", IsIdentity = true)] - public int Id { get; set; } + [JsonProperty, Column(Name = "ID", IsIdentity = true)] + public int Id { get; set; } - [JsonProperty, Column(DbType = "tinyint(1)")] - public bool IsDelete { get; set; } + [JsonProperty, Column(DbType = "tinyint(1)")] + public bool IsDelete { get; set; } - [JsonProperty, Column(DbType = "tinyint(1)")] - public bool IsGrab { get; set; } + [JsonProperty, Column(DbType = "tinyint(1)")] + public bool IsGrab { get; set; } - [JsonProperty, Column(DbType = "tinyint(1)")] - public bool IsJoinHmd { get; set; } + [JsonProperty, Column(DbType = "tinyint(1)")] + public bool IsJoinHmd { get; set; } - [JsonProperty, Column(DbType = "varchar(100)")] - public string LoanType { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(100)")] + public string LoanType { get; set; } = ""; - [JsonProperty, Column(DbType = "varchar(250)")] - public string Logo { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(250)")] + public string Logo { get; set; } = ""; - [JsonProperty] - public string Name { get; set; } = ""; + [JsonProperty] + public string Name { get; set; } = ""; - [JsonProperty, Column(DbType = "varchar(3000)")] - public string Notice { get; set; } = ""; + [JsonProperty, Column(DbType = "varchar(3000)")] + public string Notice { get; set; } = ""; - #region 外键 => 导航属性,OneToMany + #region 外键 => 导航属性,OneToMany - [Navigate("BankId")] - public virtual List ManyBankOutlets { get; set; } + [Navigate("BankId")] + public virtual List ManyBankOutlets { get; set; } - #endregion + #endregion - #region 外键 => 导航属性,ManyToMany + #region 外键 => 导航属性,ManyToMany - #endregion - } + #endregion + } } diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs index 078e59e2..173fa8eb 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs @@ -19,81 +19,81 @@ namespace FreeSql.Tests.MySqlConnector var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -111,81 +111,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -221,27 +221,27 @@ UNION ALL sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '100002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '100003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '100004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1) ; @@ -265,81 +265,81 @@ INSERT INTO `tbioudb022`(`name`) VALUES('00001'), ('00002'), ('00003'), ('00004' var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1) UNION ALL SELECT 2, '02', '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1) UNION ALL SELECT 3, '03', '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 3 AND a.`id2` = '03') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 3 AND a.`id2` = '03') + limit 0,1) UNION ALL SELECT 4, '04', '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 4 AND a.`id2` = '04') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 4 AND a.`id2` = '04') + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1) UNION ALL SELECT 2, '02', '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1) UNION ALL SELECT 3, '03', '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 3 AND a.`id2` = '03') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 3 AND a.`id2` = '03') + limit 0,1) UNION ALL SELECT 4, '04', '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 4 AND a.`id2` = '04') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 4 AND a.`id2` = '04') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -361,81 +361,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs index 956d0aaf..7b587941 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/Curd/MySqlSelectTest.cs @@ -104,22 +104,22 @@ namespace FreeSql.Tests.MySqlConnector //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.mysql.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -203,9 +203,9 @@ namespace FreeSql.Tests.MySqlConnector var sql3 = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid").ToSql(); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s @@ -929,8 +929,8 @@ namespace FreeSql.Tests.MySqlConnector count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT sum(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -947,8 +947,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT min(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -965,8 +965,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT max(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -983,8 +983,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT avg(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -999,7 +999,7 @@ FROM `tb_topic` a", subquery); Assert.Equal(@"SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` - FROM `tb_topic` b)))", subquery); + FROM `tb_topic` b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1077,12 +1077,12 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALL SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs index 0f6cc2f5..a3cead83 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengSelectTest.cs @@ -96,22 +96,22 @@ namespace FreeSql.Tests.Odbc.Dameng //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.dameng.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -855,8 +855,8 @@ namespace FreeSql.Tests.Odbc.Dameng count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT sum(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -873,8 +873,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT min(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -891,8 +891,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT max(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -909,8 +909,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT avg(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -925,7 +925,7 @@ FROM ""TB_TOPIC22"" a", subquery); Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME"" FROM ""TB_TOPIC22"" a WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" - FROM ""TB_TOPIC22"" b)))", subquery); + FROM ""TB_TOPIC22"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1004,12 +1004,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs index 617e15d3..59c91446 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/Curd/OdbcSelectTest.cs @@ -85,22 +85,22 @@ namespace FreeSql.Tests.Odbc.Default //SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name] //FROM [Tag] a //WHERE (exists(SELECT 1 - // FROM [Tag] t - // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] - // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) - // limit 0,1)) + // FROM [Tag] t + // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] + // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) + // limit 0,1)) //ManyToMany var t2 = g.odbc.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url] //FROM [Song] a //WHERE(exists(SELECT 1 - // FROM [Song_tag] Mt_Ms - // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 - // FROM [Tag] t - // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) - // limit 0, 1)) - // limit 0, 1)) + // FROM [Song_tag] Mt_Ms + // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 + // FROM [Tag] t + // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -830,7 +830,7 @@ namespace FreeSql.Tests.Odbc.Default count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 sum(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -847,7 +847,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 min(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -864,7 +864,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 max(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -881,7 +881,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 avg(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -896,7 +896,7 @@ FROM [tb_topic22] a", subquery); Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title] - FROM [tb_topic22] b)))", subquery); + FROM [tb_topic22] b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -974,12 +974,12 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title] query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcAdo/OdbcAdoTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcAdo/OdbcAdoTest.cs index bec8f773..8a81857e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcAdo/OdbcAdoTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcAdo/OdbcAdoTest.cs @@ -45,20 +45,20 @@ namespace FreeSql.Tests.Odbc.Default { //var tt1 = g.odbc.Select() - // .LeftJoin(a => a.ParentId == a.Parent.Id) - // .ToSql(a => new { a.Id, a.Title }); + // .LeftJoin(a => a.ParentId == a.Parent.Id) + // .ToSql(a => new { a.Id, a.Title }); //var tt2result = g.odbc.Select() - // .LeftJoin(a => a.ParentId == a.Parent.Id) - // .ToList(a => new { a.Id, a.Title }); + // .LeftJoin(a => a.ParentId == a.Parent.Id) + // .ToList(a => new { a.Id, a.Title }); //var tt = g.odbc.Select() - // .LeftJoin((a, b) => b.Id == a.Id) - // .ToSql(a => new { a.Id, a.Title }); + // .LeftJoin((a, b) => b.Id == a.Id) + // .ToSql(a => new { a.Id, a.Title }); //var ttresult = g.odbc.Select() - // .LeftJoin((a, b) => b.Id == a.Id) - // .ToList(a => new { a.Id, a.Title }); + // .LeftJoin((a, b) => b.Id == a.Id) + // .ToList(a => new { a.Id, a.Title }); var tnsql1 = g.odbc.Select().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.xml b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.xml index 81f32e84..7edc81cc 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.xml +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/FreeSql.Tests.Provider.Odbc.xml @@ -27,62 +27,62 @@ - + - + - + - + 类型 - + 内容简介 - + 缩略图 - + 点击量 - + - + - + - + - + diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs index 5e0b9a0d..bba60c6e 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/KingbaseES/Curd/KingbaseESSelectTest.cs @@ -96,22 +96,22 @@ namespace FreeSql.Tests.Odbc.KingbaseES //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.kingbaseES.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -820,8 +820,8 @@ namespace FreeSql.Tests.Odbc.KingbaseES count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT sum(b.""ID"") - FROM ""TB_TOPIC22"" b - limit 1) as6 + FROM ""TB_TOPIC22"" b + limit 1) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -838,8 +838,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT min(b.""ID"") - FROM ""TB_TOPIC22"" b - limit 1) as6 + FROM ""TB_TOPIC22"" b + limit 1) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -856,8 +856,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT max(b.""ID"") - FROM ""TB_TOPIC22"" b - limit 1) as6 + FROM ""TB_TOPIC22"" b + limit 1) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -874,8 +874,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT avg(b.""ID"") - FROM ""TB_TOPIC22"" b - limit 1) as6 + FROM ""TB_TOPIC22"" b + limit 1) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -890,7 +890,7 @@ FROM ""TB_TOPIC22"" a", subquery); Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME"" FROM ""TB_TOPIC22"" a WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" - FROM ""TB_TOPIC22"" b)))", subquery); + FROM ""TB_TOPIC22"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -969,12 +969,12 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs index 2aa81af4..4b72f7e4 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs @@ -19,81 +19,81 @@ namespace FreeSql.Tests.Odbc.MySql var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -111,81 +111,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -221,27 +221,27 @@ UNION ALL sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '100002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '100003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '100004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1) ; @@ -265,81 +265,81 @@ INSERT INTO `tbioudb022`(`name`) VALUES('00001'), ('00002'), ('00003'), ('00004' var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1) UNION ALL SELECT 2, '02', '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1) UNION ALL SELECT 3, '03', '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 3 AND a.`id2` = '03') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 3 AND a.`id2` = '03') + limit 0,1) UNION ALL SELECT 4, '04', '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 4 AND a.`id2` = '04') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 4 AND a.`id2` = '04') + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1) UNION ALL SELECT 2, '02', '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1) UNION ALL SELECT 3, '03', '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 3 AND a.`id2` = '03') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 3 AND a.`id2` = '03') + limit 0,1) UNION ALL SELECT 4, '04', '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 4 AND a.`id2` = '04') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 4 AND a.`id2` = '04') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -361,81 +361,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs index 546a0e06..00203bd0 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/Curd/MySqlSelectTest.cs @@ -104,22 +104,22 @@ namespace FreeSql.Tests.Odbc.MySql //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.mysql.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -213,9 +213,9 @@ namespace FreeSql.Tests.Odbc.MySql //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s @@ -940,8 +940,8 @@ namespace FreeSql.Tests.Odbc.MySql count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT sum(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -958,8 +958,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT min(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -976,8 +976,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT max(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -994,8 +994,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT avg(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -1010,7 +1010,7 @@ FROM `tb_topic` a", subquery); Assert.Equal(@"SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` - FROM `tb_topic` b)))", subquery); + FROM `tb_topic` b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1088,12 +1088,12 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALL SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs index 827fa198..a21ab06c 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleSelectTest.cs @@ -96,22 +96,22 @@ namespace FreeSql.Tests.Odbc.Oracle //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.oracle.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -856,8 +856,8 @@ namespace FreeSql.Tests.Odbc.Oracle count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT sum(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -874,8 +874,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT min(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -892,8 +892,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT max(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -910,8 +910,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT avg(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -926,7 +926,7 @@ FROM ""TB_TOPIC22"" a", subquery); Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME"" FROM ""TB_TOPIC22"" a WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" - FROM ""TB_TOPIC22"" b)))", subquery); + FROM ""TB_TOPIC22"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1005,12 +1005,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs index 00e356e7..5dad0dd0 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/Curd/PostgreSQLSelectTest.cs @@ -86,22 +86,22 @@ namespace FreeSql.Tests.Odbc.PostgreSQL //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.pgsql.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -189,9 +189,9 @@ namespace FreeSql.Tests.Odbc.PostgreSQL //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s @@ -916,8 +916,8 @@ namespace FreeSql.Tests.Odbc.PostgreSQL count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT sum(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -934,8 +934,8 @@ FROM ""tb_topic"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT min(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -952,8 +952,8 @@ FROM ""tb_topic"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT max(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -970,8 +970,8 @@ FROM ""tb_topic"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT avg(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -986,7 +986,7 @@ FROM ""tb_topic"" a", subquery); Assert.Equal(@"SELECT a.""id"", a.""clicks"", a.""typeguid"", a.""title"", a.""createtime"" FROM ""tb_topic"" a WHERE ((((a.""id"")::text) in (SELECT b.""title"" - FROM ""tb_topic"" b)))", subquery); + FROM ""tb_topic"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1064,12 +1064,12 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb UNION ALL SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs index a418e8ac..bb6fb5ca 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLExpression/OtherTest.cs @@ -81,7 +81,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression public void Array() { //g.pgsql.Aop.CurdAfter = (s, e) => { - // Trace.WriteLine(e.CurdType + ": " + e.ElapsedMilliseconds + "ms " + e.Sql.Replace("\n", "")); + // Trace.WriteLine(e.CurdType + ": " + e.ElapsedMilliseconds + "ms " + e.Sql.Replace("\n", "")); //}; IEnumerable testlinqlist = new List(new[] { 1, 2, 3 }); var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList(); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs index 4cd9858b..78f16fee 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerSelectTest.cs @@ -85,22 +85,22 @@ namespace FreeSql.Tests.Odbc.SqlServer //SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name] //FROM [Tag] a //WHERE (exists(SELECT 1 - // FROM [Tag] t - // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] - // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) - // limit 0,1)) + // FROM [Tag] t + // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] + // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) + // limit 0,1)) //ManyToMany var t2 = g.sqlserver.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url] //FROM [Song] a //WHERE(exists(SELECT 1 - // FROM [Song_tag] Mt_Ms - // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 - // FROM [Tag] t - // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) - // limit 0, 1)) - // limit 0, 1)) + // FROM [Song_tag] Mt_Ms + // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 + // FROM [Tag] t + // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -811,7 +811,7 @@ namespace FreeSql.Tests.Odbc.SqlServer count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 sum(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -828,7 +828,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 min(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -845,7 +845,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 max(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -862,7 +862,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 avg(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -877,7 +877,7 @@ FROM [tb_topic22] a", subquery); Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title] - FROM [tb_topic22] b)))", subquery); + FROM [tb_topic22] b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -955,12 +955,12 @@ WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title] query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerAdo/SqlServerAdoTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerAdo/SqlServerAdoTest.cs index 5dd43624..bdb889d9 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerAdo/SqlServerAdoTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerAdo/SqlServerAdoTest.cs @@ -46,20 +46,20 @@ namespace FreeSql.Tests.Odbc.SqlServer { //var tt1 = g.sqlserver.Select() - // .LeftJoin(a => a.ParentId == a.Parent.Id) - // .ToSql(a => new { a.Id, a.Title }); + // .LeftJoin(a => a.ParentId == a.Parent.Id) + // .ToSql(a => new { a.Id, a.Title }); //var tt2result = g.sqlserver.Select() - // .LeftJoin(a => a.ParentId == a.Parent.Id) - // .ToList(a => new { a.Id, a.Title }); + // .LeftJoin(a => a.ParentId == a.Parent.Id) + // .ToList(a => new { a.Id, a.Title }); //var tt = g.sqlserver.Select() - // .LeftJoin((a, b) => b.Id == a.Id) - // .ToSql(a => new { a.Id, a.Title }); + // .LeftJoin((a, b) => b.Id == a.Id) + // .ToSql(a => new { a.Id, a.Title }); //var ttresult = g.sqlserver.Select() - // .LeftJoin((a, b) => b.Id == a.Id) - // .ToList(a => new { a.Id, a.Title }); + // .LeftJoin((a, b) => b.Id == a.Id) + // .ToList(a => new { a.Id, a.Title }); var tnsql1 = g.sqlserver.Select().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id); var tnsql2 = g.sqlserver.Select().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToSql(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs index 4f26b4ac..a74ab260 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/UnitTest1.cs @@ -134,73 +134,73 @@ namespace FreeSql.Tests.Odbc { /// /// - /// + /// [Column(Name = "article_id", IsIdentity = true, IsPrimary = true)] public int ArticleId { get; set; } /// /// - /// + /// [Column(Name = "article_title")] public string ArticleTitle { get; set; } /// /// - /// + /// [Column(Name = "category_id")] public int CategoryId { get; set; } /// /// - /// + /// [Column(Name = "channel_id")] public int ChannelId { get; set; } /// /// 类型 - /// + /// [Column(Name = "type_id")] public int TypeId { get; set; } /// /// 内容简介 - /// + /// [Column(Name = "summary")] public string Summary { get; set; } /// /// 缩略图 - /// + /// [Column(Name = "thumbnail")] public string Thumbnail { get; set; } /// /// 点击量 - /// + /// [Column(Name = "hits")] public int Hits { get; set; } /// /// - /// + /// [Column(Name = "is_display")] public int IsDisplay { get; set; } /// /// - /// + /// [Column(Name = "status")] public int Status { get; set; } /// /// - /// + /// [Column(Name = "create_time")] public int CreateTime { get; set; } /// /// - /// + /// [Column(Name = "release_time")] public int ReleaseTime { get; set; } @@ -475,14 +475,14 @@ WHERE ROWNUM < 11"; //var testaddlist = new List(); //for(var a = 0; a < 133905; a++) { - // testaddlist.Add(new NewsArticle { - // ArticleTitle = "testaddlist_topic" + a, - // Hits = a, - // }); + // testaddlist.Add(new NewsArticle { + // ArticleTitle = "testaddlist_topic" + a, + // Hits = a, + // }); //} //g.mysql.Insert(testaddlist) - // //.NoneParameter() - // .ExecuteAffrows(); + // //.NoneParameter() + // .ExecuteAffrows(); g.mysql.Aop.ParseExpression += (s, e) => @@ -872,9 +872,9 @@ WHERE ROWNUM < 11"; //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs index c5597f2a..a3a9400f 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs @@ -96,22 +96,22 @@ namespace FreeSql.Tests.Dameng //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.dameng.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -855,8 +855,8 @@ namespace FreeSql.Tests.Dameng count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT sum(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -873,8 +873,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT min(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -891,8 +891,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT max(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -909,8 +909,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT avg(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -925,7 +925,7 @@ FROM ""TB_TOPIC22"" a", subquery); Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME"" FROM ""TB_TOPIC22"" a WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" - FROM ""TB_TOPIC22"" b)))", subquery); + FROM ""TB_TOPIC22"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1005,12 +1005,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs b/FreeSql.Tests/FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs index 06fb7aec..c86d4fd8 100644 --- a/FreeSql.Tests/FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs @@ -68,9 +68,9 @@ namespace FreeSql.Tests.DataAnnotations { g.mysql.CodeFirst //.ConfigEntity(a => { - // a.Name("xxdkdkdk1"); - // a.Property(b => b.Id).Name("Id22").IsIdentity(true); - // a.Property(b => b.name).DbType("varchar(100)").IsNullable(true); + // a.Name("xxdkdkdk1"); + // a.Property(b => b.Id).Name("Id22").IsIdentity(true); + // a.Property(b => b.name).DbType("varchar(100)").IsNullable(true); //}) .ConfigEntity(typeof(TestFluenttb1), a => diff --git a/FreeSql.Tests/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs b/FreeSql.Tests/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs index ce6bda66..0ee5d8d8 100644 --- a/FreeSql.Tests/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs @@ -41,9 +41,9 @@ namespace FreeSql.Tests.DataAnnotations { g.sqlserver.CodeFirst //.ConfigEntity(a => { - // a.Name("xxdkdkdk1"); - // a.Property(b => b.Id).Name("Id22").IsIdentity(true); - // a.Property(b => b.name).DbType("varchar(100)").IsNullable(true); + // a.Name("xxdkdkdk1"); + // a.Property(b => b.Id).Name("Id22").IsIdentity(true); + // a.Property(b => b.name).DbType("varchar(100)").IsNullable(true); //}) .ConfigEntity(typeof(TestFluenttb1), a => diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj index 9e16a3d0..9e16a021 100644 --- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj +++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.csproj @@ -1,61 +1,61 @@  - - netcoreapp3.1 + + netcoreapp3.1 - false - + false + - - FreeSql.Tests.xml + + FreeSql.Tests.xml 3 false x86 - + - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + - - - - - + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - ..\..\Providers\FreeSql.Provider.Dameng\lib\DmProvider\netstandard2.0\DmProvider.dll - + + + ..\..\Providers\FreeSql.Provider.Dameng\lib\DmProvider\netstandard2.0\DmProvider.dll + ..\..\Providers\FreeSql.Provider.ShenTong\lib\System.Data.OscarClient.dll ..\..\Providers\FreeSql.Provider.ShenTong\lib\Mono.Security.dll - + diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml index 3cae4dac..b54c9d60 100644 --- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml +++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml @@ -27,62 +27,62 @@ - + - + - + - + 类型 - + 内容简介 - + 缩略图 - + 点击量 - + - + - + - + - + diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs index 8a51a097..24c806a0 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/Curd/MsAccessSelectTest.cs @@ -85,22 +85,22 @@ namespace FreeSql.Tests.MsAccess //SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name] //FROM [Tag] a //WHERE (exists(SELECT 1 - // FROM [Tag] t - // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] - // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) - // limit 0,1)) + // FROM [Tag] t + // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] + // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) + // limit 0,1)) //ManyToMany var t2 = g.msaccess.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url] //FROM [Song] a //WHERE(exists(SELECT 1 - // FROM [Song_tag] Mt_Ms - // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 - // FROM [Tag] t - // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) - // limit 0, 1)) - // limit 0, 1)) + // FROM [Song_tag] Mt_Ms + // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 + // FROM [Tag] t + // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -831,7 +831,7 @@ namespace FreeSql.Tests.MsAccess count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT TOP 1 sum(b.[Id]) - FROM [tb_topic22] b) as as6 + FROM [tb_topic22] b) as as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -848,7 +848,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT TOP 1 min(b.[Id]) - FROM [tb_topic22] b) as as6 + FROM [tb_topic22] b) as as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -865,7 +865,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT TOP 1 max(b.[Id]) - FROM [tb_topic22] b) as as6 + FROM [tb_topic22] b) as as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -882,7 +882,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as as1, a.[Clicks] as as2, a.[TypeGuid] as as3, a.[Title] as as4, a.[CreateTime] as as5, (SELECT TOP 1 avg(b.[Id]) - FROM [tb_topic22] b) as as6 + FROM [tb_topic22] b) as as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -897,7 +897,7 @@ FROM [tb_topic22] a", subquery); Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (((cstr(a.[Id])) in (SELECT b.[Title] - FROM [tb_topic22] b)))", subquery); + FROM [tb_topic22] b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -975,12 +975,12 @@ WHERE (((cstr(a.[Id])) in (SELECT b.[Title] query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs index e1dd894b..6b6a02d1 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlInsertOrUpdateIfExistsDoNothingTest.cs @@ -19,81 +19,81 @@ namespace FreeSql.Tests.MySql var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb02` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb02` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb02` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -111,81 +111,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -221,27 +221,27 @@ UNION ALL sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '100002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '100003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '100004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb022` a - WHERE (a.`id` = 4) - limit 0,1) + FROM `tbioudb022` a + WHERE (a.`id` = 4) + limit 0,1) ; @@ -265,81 +265,81 @@ INSERT INTO `tbioudb022`(`name`) VALUES('00001'), ('00002'), ('00003'), ('00004' var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1) UNION ALL SELECT 2, '02', '02' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1) UNION ALL SELECT 3, '03', '03' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 3 AND a.`id2` = '03') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 3 AND a.`id2` = '03') + limit 0,1) UNION ALL SELECT 4, '04', '04' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 4 AND a.`id2` = '04') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 4 AND a.`id2` = '04') + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 1 AND a.`id2` = '01') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 1 AND a.`id2` = '01') + limit 0,1) UNION ALL SELECT 2, '02', '002' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 2 AND a.`id2` = '02') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 2 AND a.`id2` = '02') + limit 0,1) UNION ALL SELECT 3, '03', '003' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 3 AND a.`id2` = '03') - limit 0,1) + FROM `tbioudb03` a + WHERE (a.`id1` = 3 AND a.`id2` = '03') + limit 0,1) UNION ALL SELECT 4, '04', '004' FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb03` a - WHERE (a.`id1` = 4 AND a.`id2` = '04') - limit 0,1)", sql); + FROM `tbioudb03` a + WHERE (a.`id1` = 4 AND a.`id2` = '04') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -361,81 +361,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '02', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '03', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '04', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 1) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 1) + limit 0,1) UNION ALL SELECT 2, '002', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 2) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 2) + limit 0,1) UNION ALL SELECT 3, '003', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 3) - limit 0,1) + FROM `tbioudb04` a + WHERE (a.`id` = 3) + limit 0,1) UNION ALL SELECT 4, '004', 0, now(3) FROM dual WHERE NOT EXISTS(SELECT 1 - FROM `tbioudb04` a - WHERE (a.`id` = 4) - limit 0,1)", sql); + FROM `tbioudb04` a + WHERE (a.`id` = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs index d4166792..29f58ac3 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/Curd/MySqlSelectTest.cs @@ -104,22 +104,22 @@ namespace FreeSql.Tests.MySql //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.mysql.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -213,9 +213,9 @@ namespace FreeSql.Tests.MySql //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s @@ -976,8 +976,8 @@ namespace FreeSql.Tests.MySql count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT sum(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -994,8 +994,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT min(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -1012,8 +1012,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT max(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -1030,8 +1030,8 @@ FROM `tb_topic` a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2, a.`TypeGuid` as3, a.`Title` as4, a.`CreateTime` as5, (SELECT avg(b.`Id`) - FROM `tb_topic` b - limit 0,1) as6 + FROM `tb_topic` b + limit 0,1) as6 FROM `tb_topic` a", subquery); var subqueryList = select.ToList(a => new { @@ -1046,7 +1046,7 @@ FROM `tb_topic` a", subquery); Assert.Equal(@"SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` - FROM `tb_topic` b)))", subquery); + FROM `tb_topic` b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1124,12 +1124,12 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb UNION ALL SELECT * from (SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime` FROM `tb_topic` a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM `tb_topic` a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); @@ -1157,10 +1157,10 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title` Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2 FROM (SELECT * from (SELECT a.`Id` Id, a.`Clicks` Clicks - FROM `tb_topic_1` a) ftb - + FROM `tb_topic_1` a) ftb + UNION ALL - + SELECT * from (SELECT a.`Id` Id, a.`Clicks` Clicks FROM `tb_topic_2` a) ftb) a limit 0,20", select diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs index 0b7888c2..6839731b 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleSelectTest.cs @@ -96,22 +96,22 @@ namespace FreeSql.Tests.Oracle //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.oracle.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -856,8 +856,8 @@ namespace FreeSql.Tests.Oracle count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT sum(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -874,8 +874,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT min(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -892,8 +892,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT max(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -910,8 +910,8 @@ FROM ""TB_TOPIC22"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT avg(b.""ID"") - FROM ""TB_TOPIC22"" b - WHERE ROWNUM < 2) as6 + FROM ""TB_TOPIC22"" b + WHERE ROWNUM < 2) as6 FROM ""TB_TOPIC22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -926,7 +926,7 @@ FROM ""TB_TOPIC22"" a", subquery); Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME"" FROM ""TB_TOPIC22"" a WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" - FROM ""TB_TOPIC22"" b)))", subquery); + FROM ""TB_TOPIC22"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1005,12 +1005,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC22\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/Other/CustomerCheckupGroup.cs b/FreeSql.Tests/FreeSql.Tests/Other/CustomerCheckupGroup.cs index 788cafab..0dfaa1bc 100644 --- a/FreeSql.Tests/FreeSql.Tests/Other/CustomerCheckupGroup.cs +++ b/FreeSql.Tests/FreeSql.Tests/Other/CustomerCheckupGroup.cs @@ -18,67 +18,67 @@ using FreeSql.DataAnnotations; namespace ZX.Model { - [JsonObject(MemberSerialization.OptIn)] - public class CustomerCheckupGroup { + [JsonObject(MemberSerialization.OptIn)] + public class CustomerCheckupGroup { - [JsonProperty, Column(IsPrimary = true)] - public short ShopId { get => _ShopId; set { - if (_ShopId == value) return; - _ShopId = value; - } } - private short _ShopId; + [JsonProperty, Column(IsPrimary = true)] + public short ShopId { get => _ShopId; set { + if (_ShopId == value) return; + _ShopId = value; + } } + private short _ShopId; - [JsonProperty, Column(DbType = "varchar(50)", IsPrimary = true)] - public string Id { get; set; } + [JsonProperty, Column(DbType = "varchar(50)", IsPrimary = true)] + public string Id { get; set; } - [JsonProperty, Column(DbType = "nvarchar(50)")] - public string MemberId { get => _MemberId; set { - if (_MemberId == value) return; - _MemberId = value; - } } - private string _MemberId; + [JsonProperty, Column(DbType = "nvarchar(50)")] + public string MemberId { get => _MemberId; set { + if (_MemberId == value) return; + _MemberId = value; + } } + private string _MemberId; - [JsonProperty, Column(DbType = "varchar(50)")] - public string Discount { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Discount { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Doctor { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Doctor { get; set; } - [JsonProperty] - public DateTime? FirstTime { get; set; } + [JsonProperty] + public DateTime? FirstTime { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Group { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Group { get; set; } - [JsonProperty] - public DateTime? InsertTime { get; set; } + [JsonProperty] + public DateTime? InsertTime { get; set; } - [JsonProperty, Column(Name = "isOK")] - public bool? IsOK { get; set; } + [JsonProperty, Column(Name = "isOK")] + public bool? IsOK { get; set; } - [JsonProperty, Column(Name = "isPay", DbType = "varchar(50)")] - public string IsPay { get; set; } + [JsonProperty, Column(Name = "isPay", DbType = "varchar(50)")] + public string IsPay { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Office { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Office { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string PayType { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string PayType { get; set; } - [JsonProperty, Column(DbType = "decimal(9,2)")] - public decimal? Price { get; set; } + [JsonProperty, Column(DbType = "decimal(9,2)")] + public decimal? Price { get; set; } - [JsonProperty] - public DateTime? UpdateTime { get; set; } + [JsonProperty] + public DateTime? UpdateTime { get; set; } - [JsonProperty, Column(DbType = "decimal(9,2)")] - public decimal? Value { get; set; } + [JsonProperty, Column(DbType = "decimal(9,2)")] + public decimal? Value { get; set; } - #region 外键 => 导航属性,ManyToOne/OneToOne + #region 外键 => 导航属性,ManyToOne/OneToOne - [Navigate("ShopId, MemberId")] - public virtual CustomerMember CustomerMember { get; set; } + [Navigate("ShopId, MemberId")] + public virtual CustomerMember CustomerMember { get; set; } #endregion #region 外键 => 导航属性,ManyToMany diff --git a/FreeSql.Tests/FreeSql.Tests/Other/CustomerMember.cs b/FreeSql.Tests/FreeSql.Tests/Other/CustomerMember.cs index fabf1500..33c92afe 100644 --- a/FreeSql.Tests/FreeSql.Tests/Other/CustomerMember.cs +++ b/FreeSql.Tests/FreeSql.Tests/Other/CustomerMember.cs @@ -25,84 +25,84 @@ namespace ZX.Model { CheckupGroups = new List(); } - [JsonProperty, Column(DbType = "nvarchar(50)", IsPrimary = true)] - public string MemberId { get; set; } + [JsonProperty, Column(DbType = "nvarchar(50)", IsPrimary = true)] + public string MemberId { get; set; } - [JsonProperty, Column(IsPrimary = true)] - public short ShopId { get; set; } + [JsonProperty, Column(IsPrimary = true)] + public short ShopId { get; set; } - [JsonProperty] - public long? CustomerId { get => _CustomerId; set { - if (_CustomerId == value) return; - _CustomerId = value; - } } - private long? _CustomerId; + [JsonProperty] + public long? CustomerId { get => _CustomerId; set { + if (_CustomerId == value) return; + _CustomerId = value; + } } + private long? _CustomerId; - [JsonProperty, Column(DbType = "varchar(500)")] - public string Address { get; set; } + [JsonProperty, Column(DbType = "varchar(500)")] + public string Address { get; set; } - [JsonProperty, Column(DbType = "smalldatetime")] - public DateTime? Birthday { get; set; } + [JsonProperty, Column(DbType = "smalldatetime")] + public DateTime? Birthday { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string CardNo { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string CardNo { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string CardType { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string CardType { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Doctor { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Doctor { get; set; } - [JsonProperty] - public DateTime? EndDate { get; set; } + [JsonProperty] + public DateTime? EndDate { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Group { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Group { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Marry { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Marry { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Name { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Name { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Part { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Part { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string PayType { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string PayType { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Phone { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Phone { get; set; } - [JsonProperty, Column(DbType = "varchar(10)")] - public string Sex { get; set; } + [JsonProperty, Column(DbType = "varchar(10)")] + public string Sex { get; set; } - [JsonProperty] - public DateTime? StartDate { get; set; } + [JsonProperty] + public DateTime? StartDate { get; set; } - [JsonProperty, Column(DbType = "text")] - public string Suggest { get; set; } + [JsonProperty, Column(DbType = "text")] + public string Suggest { get; set; } - [JsonProperty, Column(DbType = "text")] - public string SumUp { get; set; } + [JsonProperty, Column(DbType = "text")] + public string SumUp { get; set; } - [JsonProperty, Column(DbType = "varchar(50)")] - public string Team { get; set; } + [JsonProperty, Column(DbType = "varchar(50)")] + public string Team { get; set; } - [JsonProperty, Column(DbType = "decimal(9,2)")] - public decimal? TotalFee { get; set; } + [JsonProperty, Column(DbType = "decimal(9,2)")] + public decimal? TotalFee { get; set; } - #region 外键 => 导航属性,ManyToOne/OneToOne + #region 外键 => 导航属性,ManyToOne/OneToOne [Navigate("MemberId,ShopId")] public virtual List CheckupGroups { get; set; } - #endregion + #endregion - #region 外键 => 导航属性,ManyToMany + #region 外键 => 导航属性,ManyToMany - #endregion - } + #endregion + } } diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs index 2bede6a8..bd253f74 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/Curd/PostgreSQLSelectTest.cs @@ -86,22 +86,22 @@ namespace FreeSql.Tests.PostgreSQL //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.pgsql.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -189,9 +189,9 @@ namespace FreeSql.Tests.PostgreSQL //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s @@ -933,8 +933,8 @@ namespace FreeSql.Tests.PostgreSQL count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT sum(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -951,8 +951,8 @@ FROM ""tb_topic"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT min(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -969,8 +969,8 @@ FROM ""tb_topic"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT max(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -987,8 +987,8 @@ FROM ""tb_topic"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""id"" as1, a.""clicks"" as2, a.""typeguid"" as3, a.""title"" as4, a.""createtime"" as5, (SELECT avg(b.""id"") - FROM ""tb_topic"" b - limit 1) as6 + FROM ""tb_topic"" b + limit 1) as6 FROM ""tb_topic"" a", subquery); var subqueryList = select.ToList(a => new { @@ -1003,7 +1003,7 @@ FROM ""tb_topic"" a", subquery); Assert.Equal(@"SELECT a.""id"", a.""clicks"", a.""typeguid"", a.""title"", a.""createtime"" FROM ""tb_topic"" a WHERE ((((a.""id"")::text) in (SELECT b.""title"" - FROM ""tb_topic"" b)))", subquery); + FROM ""tb_topic"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1081,12 +1081,12 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb UNION ALL SELECT * from (SELECT a.\"id\", a.\"clicks\", a.\"typeguid\", a.\"title\", a.\"createtime\" FROM \"tb_topic\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"tb_topic\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs index 034c1ae3..e18c9ef2 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLExpression/OtherTest.cs @@ -85,7 +85,7 @@ namespace FreeSql.Tests.PostgreSQLExpression public void Array() { //g.pgsql.Aop.CurdAfter = (s, e) => { - // Trace.WriteLine(e.CurdType + ": " + e.ElapsedMilliseconds + "ms " + e.Sql.Replace("\n", "")); + // Trace.WriteLine(e.CurdType + ": " + e.ElapsedMilliseconds + "ms " + e.Sql.Replace("\n", "")); //}; IEnumerable testlinqlist = new List(new[] { 1, 2, 3 }); var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList(); diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs index 57b20641..8eca4e32 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongSelectTest.cs @@ -86,22 +86,22 @@ namespace FreeSql.Tests.ShenTong //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.shentong.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) } [Fact] @@ -189,9 +189,9 @@ namespace FreeSql.Tests.ShenTong //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s @@ -933,8 +933,8 @@ namespace FreeSql.Tests.ShenTong count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT sum(b.""ID"") - FROM ""TB_TOPIC"" b - limit 1) as6 + FROM ""TB_TOPIC"" b + limit 1) as6 FROM ""TB_TOPIC"" a", subquery); var subqueryList = select.ToList(a => new { @@ -951,8 +951,8 @@ FROM ""TB_TOPIC"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT min(b.""ID"") - FROM ""TB_TOPIC"" b - limit 1) as6 + FROM ""TB_TOPIC"" b + limit 1) as6 FROM ""TB_TOPIC"" a", subquery); var subqueryList = select.ToList(a => new { @@ -969,8 +969,8 @@ FROM ""TB_TOPIC"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT max(b.""ID"") - FROM ""TB_TOPIC"" b - limit 1) as6 + FROM ""TB_TOPIC"" b + limit 1) as6 FROM ""TB_TOPIC"" a", subquery); var subqueryList = select.ToList(a => new { @@ -987,8 +987,8 @@ FROM ""TB_TOPIC"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""ID"" as1, a.""CLICKS"" as2, a.""TYPEGUID"" as3, a.""TITLE"" as4, a.""CREATETIME"" as5, (SELECT avg(b.""ID"") - FROM ""TB_TOPIC"" b - limit 1) as6 + FROM ""TB_TOPIC"" b + limit 1) as6 FROM ""TB_TOPIC"" a", subquery); var subqueryList = select.ToList(a => new { @@ -1003,7 +1003,7 @@ FROM ""TB_TOPIC"" a", subquery); Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME"" FROM ""TB_TOPIC"" a WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" - FROM ""TB_TOPIC"" b)))", subquery); + FROM ""TB_TOPIC"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1081,12 +1081,12 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC\" a) ftb UNION ALLSELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC\" a) ftb UNION ALL SELECT * from (SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"TB_TOPIC\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/ShenTongExpression/OtherTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/ShenTongExpression/OtherTest.cs index 8c9b039a..573d250f 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/ShenTongExpression/OtherTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/ShenTongExpression/OtherTest.cs @@ -76,7 +76,7 @@ namespace FreeSql.Tests.ShenTongExpression public void Array() { //g.shentong.Aop.CurdAfter = (s, e) => { - // Trace.WriteLine(e.CurdType + ": " + e.ElapsedMilliseconds + "ms " + e.Sql.Replace("\n", "")); + // Trace.WriteLine(e.CurdType + ": " + e.ElapsedMilliseconds + "ms " + e.Sql.Replace("\n", "")); //}; IEnumerable testlinqlist = new List(new[] { 1, 2, 3 }); var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList(); diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs index 2e82786a..34377feb 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerSelectTest.cs @@ -96,22 +96,22 @@ namespace FreeSql.Tests.SqlServer //SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name] //FROM [Tag] a //WHERE (exists(SELECT 1 - // FROM [Tag] t - // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] - // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) - // limit 0,1)) + // FROM [Tag] t + // LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id] + // WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id]) + // limit 0,1)) //ManyToMany var t2 = g.sqlserver.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url] //FROM [Song] a //WHERE(exists(SELECT 1 - // FROM [Song_tag] Mt_Ms - // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 - // FROM [Tag] t - // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) - // limit 0, 1)) - // limit 0, 1)) + // FROM [Song_tag] Mt_Ms + // WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1 + // FROM [Tag] t + // WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id]) + // limit 0, 1)) + // limit 0, 1)) var t3 = g.sqlserver.Select().ToList(r => new { @@ -867,7 +867,7 @@ namespace FreeSql.Tests.SqlServer count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 sum(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -884,7 +884,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 min(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -901,7 +901,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 max(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -918,7 +918,7 @@ FROM [tb_topic22] a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.[Id] as1, a.[Clicks] as2, a.[TypeGuid] as3, a.[Title] as4, a.[CreateTime] as5, (SELECT TOP 1 avg(b.[Id]) - FROM [tb_topic22] b) as6 + FROM [tb_topic22] b) as6 FROM [tb_topic22] a", subquery); var subqueryList = select.ToList(a => new { @@ -933,7 +933,7 @@ FROM [tb_topic22] a", subquery); Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title] - FROM [tb_topic22] b)))", subquery); + FROM [tb_topic22] b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1011,12 +1011,12 @@ WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title] query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime] FROM [tb_topic22] a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM [tb_topic22] a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerAdo/SqlServerAdoTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerAdo/SqlServerAdoTest.cs index 31d25d6a..3845a2d0 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerAdo/SqlServerAdoTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerAdo/SqlServerAdoTest.cs @@ -53,20 +53,20 @@ namespace FreeSql.Tests.SqlServer { //var tt1 = g.sqlserver.Select() - // .LeftJoin(a => a.ParentId == a.Parent.Id) - // .ToSql(a => new { a.Id, a.Title }); + // .LeftJoin(a => a.ParentId == a.Parent.Id) + // .ToSql(a => new { a.Id, a.Title }); //var tt2result = g.sqlserver.Select() - // .LeftJoin(a => a.ParentId == a.Parent.Id) - // .ToList(a => new { a.Id, a.Title }); + // .LeftJoin(a => a.ParentId == a.Parent.Id) + // .ToList(a => new { a.Id, a.Title }); //var tt = g.sqlserver.Select() - // .LeftJoin((a, b) => b.Id == a.Id) - // .ToSql(a => new { a.Id, a.Title }); + // .LeftJoin((a, b) => b.Id == a.Id) + // .ToSql(a => new { a.Id, a.Title }); //var ttresult = g.sqlserver.Select() - // .LeftJoin((a, b) => b.Id == a.Id) - // .ToList(a => new { a.Id, a.Title }); + // .LeftJoin((a, b) => b.Id == a.Id) + // .ToList(a => new { a.Id, a.Title }); var tnsql1 = g.sqlserver.Select().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id); var tnsql2 = g.sqlserver.Select().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToSql(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteInsertOrUpdateIfExistsDoNothingTest.cs index 07ca702a..46e0685d 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteInsertOrUpdateIfExistsDoNothingTest.cs @@ -19,81 +19,81 @@ namespace FreeSql.Tests.Sqlite var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '01' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 1) - limit 0,1)", sql); + FROM ""tbioudb02"" a + WHERE (a.""id"" = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '011' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 1) - limit 0,1)", sql); + FROM ""tbioudb02"" a + WHERE (a.""id"" = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 2, '02' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 2) - limit 0,1)", sql); + FROM ""tbioudb02"" a + WHERE (a.""id"" = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '01' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb02"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '02' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb02"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '03' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb02"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '04' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 4) - limit 0,1)", sql); + FROM ""tbioudb02"" a + WHERE (a.""id"" = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '001' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb02"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '002' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb02"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '003' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb02"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '004' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb02"" a - WHERE (a.""id"" = 4) - limit 0,1)", sql); + FROM ""tbioudb02"" a + WHERE (a.""id"" = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -111,81 +111,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '01' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 1) - limit 0,1)", sql); + FROM ""tbioudb022"" a + WHERE (a.""id"" = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '011' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 1) - limit 0,1)", sql); + FROM ""tbioudb022"" a + WHERE (a.""id"" = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 2, '02' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 2) - limit 0,1)", sql); + FROM ""tbioudb022"" a + WHERE (a.""id"" = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '01' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '02' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '03' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '04' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 4) - limit 0,1)", sql); + FROM ""tbioudb022"" a + WHERE (a.""id"" = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '001' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '002' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '003' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '004' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 4) - limit 0,1)", sql); + FROM ""tbioudb022"" a + WHERE (a.""id"" = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -221,27 +221,27 @@ UNION ALL sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '100001' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '100002' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '100003' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '100004' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb022"" a - WHERE (a.""id"" = 4) - limit 0,1) + FROM ""tbioudb022"" a + WHERE (a.""id"" = 4) + limit 0,1) ; @@ -265,81 +265,81 @@ INSERT INTO ""tbioudb022""(""name"") VALUES('00001'), ('00002'), ('00003'), ('00 var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '01' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 1 AND a.""id2"" = '01') - limit 0,1)", sql); + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 1 AND a.""id2"" = '01') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '011' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 1 AND a.""id2"" = '01') - limit 0,1)", sql); + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 1 AND a.""id2"" = '01') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 2, '02', '02' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 2 AND a.""id2"" = '02') - limit 0,1)", sql); + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 2 AND a.""id2"" = '02') + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '01' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 1 AND a.""id2"" = '01') - limit 0,1) + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 1 AND a.""id2"" = '01') + limit 0,1) UNION ALL SELECT 2, '02', '02' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 2 AND a.""id2"" = '02') - limit 0,1) + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 2 AND a.""id2"" = '02') + limit 0,1) UNION ALL SELECT 3, '03', '03' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 3 AND a.""id2"" = '03') - limit 0,1) + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 3 AND a.""id2"" = '03') + limit 0,1) UNION ALL SELECT 4, '04', '04' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 4 AND a.""id2"" = '04') - limit 0,1)", sql); + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 4 AND a.""id2"" = '04') + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '001' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 1 AND a.""id2"" = '01') - limit 0,1) + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 1 AND a.""id2"" = '01') + limit 0,1) UNION ALL SELECT 2, '02', '002' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 2 AND a.""id2"" = '02') - limit 0,1) + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 2 AND a.""id2"" = '02') + limit 0,1) UNION ALL SELECT 3, '03', '003' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 3 AND a.""id2"" = '03') - limit 0,1) + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 3 AND a.""id2"" = '03') + limit 0,1) UNION ALL SELECT 4, '04', '004' WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb03"" a - WHERE (a.""id1"" = 4 AND a.""id2"" = '04') - limit 0,1)", sql); + FROM ""tbioudb03"" a + WHERE (a.""id1"" = 4 AND a.""id2"" = '04') + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -361,81 +361,81 @@ UNION ALL var sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '01', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 1) - limit 0,1)", sql); + FROM ""tbioudb04"" a + WHERE (a.""id"" = 1) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '011', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 1) - limit 0,1)", sql); + FROM ""tbioudb04"" a + WHERE (a.""id"" = 1) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 2, '02', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 2) - limit 0,1)", sql); + FROM ""tbioudb04"" a + WHERE (a.""id"" = 2) + limit 0,1)", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '01', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb04"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '02', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb04"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '03', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb04"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '04', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 4) - limit 0,1)", sql); + FROM ""tbioudb04"" a + WHERE (a.""id"" = 4) + limit 0,1)", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '001', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 1) - limit 0,1) + FROM ""tbioudb04"" a + WHERE (a.""id"" = 1) + limit 0,1) UNION ALL SELECT 2, '002', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 2) - limit 0,1) + FROM ""tbioudb04"" a + WHERE (a.""id"" = 2) + limit 0,1) UNION ALL SELECT 3, '003', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 3) - limit 0,1) + FROM ""tbioudb04"" a + WHERE (a.""id"" = 3) + limit 0,1) UNION ALL SELECT 4, '004', 0, datetime(current_timestamp,'localtime') WHERE NOT EXISTS(SELECT 1 - FROM ""tbioudb04"" a - WHERE (a.""id"" = 4) - limit 0,1)", sql); + FROM ""tbioudb04"" a + WHERE (a.""id"" = 4) + limit 0,1)", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs index e7201fb6..7cc33e4e 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/Curd/SqliteSelectTest.cs @@ -91,22 +91,22 @@ namespace FreeSql.Tests.Sqlite //SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name` //FROM `Tag` a //WHERE (exists(SELECT 1 - // FROM `Tag` t - // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` - // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) - // limit 0,1)) + // FROM `Tag` t + // LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id` + // WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`) + // limit 0,1)) //ManyToMany var t2 = g.sqlite.Select().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql(); //SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url` //FROM `Song` a //WHERE(exists(SELECT 1 - // FROM `Song_tag` Mt_Ms - // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 - // FROM `Tag` t - // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) - // limit 0, 1)) - // limit 0, 1)) + // FROM `Song_tag` Mt_Ms + // WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1 + // FROM `Tag` t + // WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`) + // limit 0, 1)) + // limit 0, 1)) var t3 = g.sqlite.Select().ToList(r => new { @@ -821,8 +821,8 @@ namespace FreeSql.Tests.Sqlite count = (long)select.As("b").Sum(b => b.Id) }); Assert.Equal(@"SELECT a.""Id"" as1, a.""Clicks"" as2, a.""TypeGuid"" as3, a.""Title"" as4, a.""CreateTime"" as5, (SELECT sum(b.""Id"") - FROM ""tb_topic22"" b - limit 0,1) as6 + FROM ""tb_topic22"" b + limit 0,1) as6 FROM ""tb_topic22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -839,8 +839,8 @@ FROM ""tb_topic22"" a", subquery); count = select.As("b").Min(b => b.Id) }); Assert.Equal(@"SELECT a.""Id"" as1, a.""Clicks"" as2, a.""TypeGuid"" as3, a.""Title"" as4, a.""CreateTime"" as5, (SELECT min(b.""Id"") - FROM ""tb_topic22"" b - limit 0,1) as6 + FROM ""tb_topic22"" b + limit 0,1) as6 FROM ""tb_topic22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -857,8 +857,8 @@ FROM ""tb_topic22"" a", subquery); count = select.As("b").Max(b => b.Id) }); Assert.Equal(@"SELECT a.""Id"" as1, a.""Clicks"" as2, a.""TypeGuid"" as3, a.""Title"" as4, a.""CreateTime"" as5, (SELECT max(b.""Id"") - FROM ""tb_topic22"" b - limit 0,1) as6 + FROM ""tb_topic22"" b + limit 0,1) as6 FROM ""tb_topic22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -875,8 +875,8 @@ FROM ""tb_topic22"" a", subquery); count = select.As("b").Avg(b => b.Id) }); Assert.Equal(@"SELECT a.""Id"" as1, a.""Clicks"" as2, a.""TypeGuid"" as3, a.""Title"" as4, a.""CreateTime"" as5, (SELECT avg(b.""Id"") - FROM ""tb_topic22"" b - limit 0,1) as6 + FROM ""tb_topic22"" b + limit 0,1) as6 FROM ""tb_topic22"" a", subquery); var subqueryList = select.ToList(a => new { @@ -891,7 +891,7 @@ FROM ""tb_topic22"" a", subquery); Assert.Equal(@"SELECT a.""Id"", a.""Clicks"", a.""TypeGuid"", a.""Title"", a.""CreateTime"" FROM ""tb_topic22"" a WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title"" - FROM ""tb_topic22"" b)))", subquery); + FROM ""tb_topic22"" b)))", subquery); var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList(); } [Fact] @@ -1001,12 +1001,12 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title"" query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql().Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22\" a) ftb UNION ALLSELECT * from (SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22\" a) ftb UNION ALL SELECT * from (SELECT a.\"Id\", a.\"Clicks\", a.\"TypeGuid\", a.\"Title\", a.\"CreateTime\" FROM \"tb_topic22\" a) ftb", sql); query.ToList(); query = select.AsTable((_, old) => old).AsTable((_, old) => old); sql = query.ToSql("count(1) as1").Replace("\r\n", ""); - Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic22\" a) ftb UNION ALLSELECT * from (SELECT count(1) as1 FROM \"tb_topic22\" a) ftb", sql); + Assert.Equal("SELECT * from (SELECT count(1) as1 FROM \"tb_topic22\" a) ftb UNION ALL SELECT * from (SELECT count(1) as1 FROM \"tb_topic22\" a) ftb", sql); query.Count(); select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id); diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs index f8499441..48baf05b 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs @@ -183,73 +183,73 @@ namespace FreeSql.Tests { /// /// - /// + /// [Column(Name = "article_id", IsIdentity = true, IsPrimary = true)] public int ArticleId { get; set; } /// /// - /// + /// [Column(Name = "article_title")] public string ArticleTitle { get; set; } /// /// - /// + /// [Column(Name = "category_id")] public int CategoryId { get; set; } /// /// - /// + /// [Column(Name = "channel_id")] public int ChannelId { get; set; } /// /// 类型 - /// + /// [Column(Name = "type_id")] public int TypeId { get; set; } /// /// 内容简介 - /// + /// [Column(Name = "summary")] public string Summary { get; set; } /// /// 缩略图 - /// + /// [Column(Name = "thumbnail")] public string Thumbnail { get; set; } /// /// 点击量 - /// + /// [Column(Name = "hits")] public int Hits { get; set; } /// /// - /// + /// [Column(Name = "is_display")] public int IsDisplay { get; set; } /// /// - /// + /// [Column(Name = "status")] public int Status { get; set; } /// /// - /// + /// [Column(Name = "create_time")] public int CreateTime { get; set; } /// /// - /// + /// [Column(Name = "release_time")] public int ReleaseTime { get; set; } @@ -762,14 +762,14 @@ namespace FreeSql.Tests //var testaddlist = new List(); //for(var a = 0; a < 133905; a++) { - // testaddlist.Add(new NewsArticle { - // ArticleTitle = "testaddlist_topic" + a, - // Hits = a, - // }); + // testaddlist.Add(new NewsArticle { + // ArticleTitle = "testaddlist_topic" + a, + // Hits = a, + // }); //} //g.sqlite.Insert(testaddlist) - // //.NoneParameter() - // .ExecuteAffrows(); + // //.NoneParameter() + // .ExecuteAffrows(); g.mysql.Aop.ParseExpression += (s, e) => @@ -1225,9 +1225,9 @@ namespace FreeSql.Tests //); //var sql4 = select.From((a, b, c) => new SelectFrom() - // .InnerJoin(a.TypeGuid == b.Guid) - // .LeftJoin(c.Id == b.ParentId) - // .Where(b.Name == "xxx")) + // .InnerJoin(a.TypeGuid == b.Guid) + // .LeftJoin(c.Id == b.ParentId) + // .Where(b.Name == "xxx")) //.Where(a => a.Id == 1).ToSql(); var sql4 = select.From((s, b, c) => s diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index d85749c3..f27f2600 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -984,7 +984,7 @@ namespace FreeSql.Internal fsqlWhere.Invoke(fsql, new object[] { Expression.Lambda(fsqlManyWhereExp, fsqlWhereParam) }); var sql2 = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString(); if (string.IsNullOrEmpty(sql2) == false) - manySubSelectExpBoy = Expression.Call(manySubSelectExpBoy, manySubSelectWhereSql, Expression.Constant($"exists({sql2.Replace("\r\n", "\r\n\t")})"), Expression.Constant(null)); + manySubSelectExpBoy = Expression.Call(manySubSelectExpBoy, manySubSelectWhereSql, Expression.Constant($"exists({sql2.Replace(" \r\n", " \r\n ")})"), Expression.Constant(null)); MethodInfo manySubSelectAggMethod = null; switch (exp3.Method.Name) //https://github.com/dotnetcore/FreeSql/issues/362 { @@ -1031,12 +1031,12 @@ namespace FreeSql.Internal case "Any": var sql = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString(); if (string.IsNullOrEmpty(sql) == false) - return $"exists({sql.Replace("\r\n", "\r\n\t")})"; + return $"exists({sql.Replace(" \r\n", " \r\n ")})"; break; case "Count": var sqlCount = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "count(1)" })?.ToString(); if (string.IsNullOrEmpty(sqlCount) == false) - return $"({sqlCount.Replace("\r\n", "\r\n\t")})"; + return $"({sqlCount.Replace(" \r\n", " \r\n ")})"; break; case "Sum": case "Min": @@ -1047,7 +1047,7 @@ namespace FreeSql.Internal tscClone1._tables = fsqltables; var sqlSum = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { $"{exp3.Method.Name.ToLower()}({ExpressionLambdaToSql(exp3.Arguments.FirstOrDefault(), tscClone1)})" })?.ToString(); if (string.IsNullOrEmpty(sqlSum) == false) - return $"({sqlSum.Replace("\r\n", "\r\n\t")})"; + return $"({sqlSum.Replace(" \r\n", " \r\n ")})"; break; case "ToList": case "ToOne": @@ -1057,7 +1057,7 @@ namespace FreeSql.Internal tscClone2._tables = fsqltables; var sqlFirst = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { ExpressionLambdaToSql(exp3.Arguments.FirstOrDefault(), tscClone2) })?.ToString(); if (string.IsNullOrEmpty(sqlFirst) == false) - return $"({sqlFirst.Replace("\r\n", "\r\n\t")})"; + return $"({sqlFirst.Replace(" \r\n", " \r\n ")})"; break; } } diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index 62e2d64d..93982fd4 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -990,7 +990,7 @@ namespace FreeSql.Internal.CommonProvider if (_orm.CodeFirst.IsAutoSyncStructure) _orm.CodeFirst.SyncStructure(tb.Table.Type, name); } else - name = name.Replace("\r\n", "\r\n "); + name = name.Replace(" \r\n", " \r\n "); } dict.Add(tb.Table.Type, name); } diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs index c9087dff..2d7e0e73 100644 --- a/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs +++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Dameng.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessSelect.cs b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessSelect.cs index b692561a..ff0fbd41 100644 --- a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessSelect.cs +++ b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessSelect.cs @@ -26,7 +26,7 @@ namespace FreeSql.MsAccess.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlInsertOrUpdate.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlInsertOrUpdate.cs index e61d1491..d2fe72dd 100644 --- a/Providers/FreeSql.Provider.MySql/Curd/MySqlInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlInsertOrUpdate.cs @@ -54,7 +54,7 @@ namespace FreeSql.MySql.Curd .AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type) .DisableGlobalFilter() .WhereDynamic(rowd) - .Limit(1).ToSql("1").Replace("\r\n", "\r\n\t")).Append(")")); + .Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")")); } } if (string.IsNullOrEmpty(sql)) return null; diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs index 802bc791..5f1b4966 100644 --- a/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs +++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.MySql.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengSelect.cs b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengSelect.cs index b876790a..7a43e528 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Odbc.Dameng var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs index 7479b256..0ccddfa8 100644 --- a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Odbc.Default var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESSelect.cs b/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESSelect.cs index 33b21595..8a2af80c 100644 --- a/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/KingbaseES/Curd/OdbcKingbaseESSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Odbc.KingbaseES var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsertOrUpdate.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsertOrUpdate.cs index c1e7592a..65f8affa 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsertOrUpdate.cs @@ -53,7 +53,7 @@ namespace FreeSql.Odbc.MySql .AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type) .DisableGlobalFilter() .WhereDynamic(rowd) - .Limit(1).ToSql("1").Replace("\r\n", "\r\n\t")).Append(")")); + .Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")")); } } if (string.IsNullOrEmpty(sql)) return null; diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs index 078ec66f..c607f773 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Odbc.MySql var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs index ccefb0f7..c353b428 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Odbc.Oracle var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs index 86d3e7de..81703262 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Odbc.PostgreSQL var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs index 9a6d2cde..f6a91c1b 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs @@ -31,7 +31,7 @@ namespace FreeSql.Odbc.SqlServer var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; @@ -146,7 +146,7 @@ namespace FreeSql.Odbc.SqlServer var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs index 7a725285..9663db7c 100644 --- a/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs +++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Oracle.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs index 80b28769..8b902795 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.PostgreSQL.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongSelect.cs b/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongSelect.cs index f3393d8e..4d78874b 100644 --- a/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongSelect.cs +++ b/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.ShenTong.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs index 024bc957..97994329 100644 --- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs +++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs @@ -146,7 +146,7 @@ namespace FreeSql.SqlServer.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx]; diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsertOrUpdate.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsertOrUpdate.cs index 696d6920..3d028dbe 100644 --- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsertOrUpdate.cs @@ -57,7 +57,7 @@ namespace FreeSql.Sqlite.Curd .AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type) .DisableGlobalFilter() .WhereDynamic(rowd) - .Limit(1).ToSql("1").Replace("\r\n", "\r\n\t")).Append(")")); + .Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")")); } } if (string.IsNullOrEmpty(sql)) return null; diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs index bf2af50d..054265fd 100644 --- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs +++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs @@ -25,7 +25,7 @@ namespace FreeSql.Sqlite.Curd var tbUnionsGt0 = tbUnions.Count > 1; for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++) { - if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n"); + if (tbUnionsIdx > 0) sb.Append("\r\n \r\nUNION ALL\r\n \r\n"); if (tbUnionsGt0) sb.Append(_select).Append(" * from ("); var tbUnion = tbUnions[tbUnionsIdx];