mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
内部 SQL 格式优化
This commit is contained in:
parent
8d11993e6c
commit
7471df5924
@ -125,6 +125,13 @@
|
||||
清空状态数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
根据 lambda 条件删除数据
|
||||
</summary>
|
||||
<param name="predicate"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||
<summary>
|
||||
添加
|
||||
@ -479,5 +486,14 @@
|
||||
<param name="that"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
|
||||
<summary>
|
||||
批量注入 Repository,可以参考代码自行调整
|
||||
</summary>
|
||||
<param name="services"></param>
|
||||
<param name="globalDataFilter"></param>
|
||||
<param name="assemblies"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
@ -13,63 +13,63 @@ using Newtonsoft.Json;
|
||||
using FreeSql.DataAnnotations;
|
||||
namespace FreeSql.Jhfw.Models {
|
||||
|
||||
public interface IBaseModel<TKey>
|
||||
{
|
||||
TKey Id { get; set; }
|
||||
}
|
||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "bank_outlets")]
|
||||
public partial class BankOutlets : IBaseModel<int>
|
||||
public interface IBaseModel<TKey>
|
||||
{
|
||||
TKey Id { get; set; }
|
||||
}
|
||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "bank_outlets")]
|
||||
public partial class BankOutlets : IBaseModel<int>
|
||||
{
|
||||
|
||||
[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<BankOutlets> ManyBankOutlets { get; set; }
|
||||
[Navigate("ParentId")]
|
||||
public virtual List<BankOutlets> ManyBankOutlets { get; set; }
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 外键 => 导航属性,ManyToMany
|
||||
#region 外键 => 导航属性,ManyToMany
|
||||
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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<int>
|
||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "banks")]
|
||||
public partial class Banks : IBaseModel<int>
|
||||
{
|
||||
|
||||
[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<BankOutlets> ManyBankOutlets { get; set; }
|
||||
[Navigate("BankId")]
|
||||
public virtual List<BankOutlets> ManyBankOutlets { get; set; }
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 外键 => 导航属性,ManyToMany
|
||||
#region 外键 => 导航属性,ManyToMany
|
||||
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||
|
@ -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<Song>().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<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((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);
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -45,20 +45,20 @@ namespace FreeSql.Tests.Odbc.Default
|
||||
{
|
||||
|
||||
//var tt1 = g.odbc.Select<xxx>()
|
||||
// .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<xxx>()
|
||||
// .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<xxx>()
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToSql(a => new { a.Id, a.Title });
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToSql(a => new { a.Id, a.Title });
|
||||
|
||||
//var ttresult = g.odbc.Select<xxx>()
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToList(a => new { a.Id, a.Title });
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToList(a => new { a.Id, a.Title });
|
||||
|
||||
var tnsql1 = g.odbc.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id);
|
||||
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||
|
@ -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<Song>().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<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((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);
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -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<Song>().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<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((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);
|
||||
|
@ -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<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||
var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList();
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -46,20 +46,20 @@ namespace FreeSql.Tests.Odbc.SqlServer
|
||||
{
|
||||
|
||||
//var tt1 = g.sqlserver.Select<xxx>()
|
||||
// .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<xxx>()
|
||||
// .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<xxx>()
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToSql(a => new { a.Id, a.Title });
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToSql(a => new { a.Id, a.Title });
|
||||
|
||||
//var ttresult = g.sqlserver.Select<xxx>()
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToList(a => new { a.Id, a.Title });
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToList(a => new { a.Id, a.Title });
|
||||
|
||||
var tnsql1 = g.sqlserver.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id);
|
||||
var tnsql2 = g.sqlserver.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToSql(a => a.Id);
|
||||
|
@ -475,14 +475,14 @@ WHERE ROWNUM < 11";
|
||||
|
||||
//var testaddlist = new List<NewsArticle>();
|
||||
//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<NewsArticle>(testaddlist)
|
||||
// //.NoneParameter()
|
||||
// .ExecuteAffrows();
|
||||
// //.NoneParameter()
|
||||
// .ExecuteAffrows();
|
||||
|
||||
|
||||
g.mysql.Aop.ParseExpression += (s, e) =>
|
||||
@ -872,9 +872,9 @@ WHERE ROWNUM < 11";
|
||||
//);
|
||||
|
||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -68,9 +68,9 @@ namespace FreeSql.Tests.DataAnnotations
|
||||
{
|
||||
g.mysql.CodeFirst
|
||||
//.ConfigEntity<TestFluenttb1>(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 =>
|
||||
|
@ -41,9 +41,9 @@ namespace FreeSql.Tests.DataAnnotations
|
||||
{
|
||||
g.sqlserver.CodeFirst
|
||||
//.ConfigEntity<TestFluenttb1>(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 =>
|
||||
|
@ -1,61 +1,61 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DocumentationFile>FreeSql.Tests.xml</DocumentationFile>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DocumentationFile>FreeSql.Tests.xml</DocumentationFile>
|
||||
<WarningLevel>3</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Dapper" Version="2.0.35" />
|
||||
<PackageReference Include="IdleBus" Version="1.3.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Dapper" Version="2.0.35" />
|
||||
<PackageReference Include="IdleBus" Version="1.3.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="DataAnnotations\MySql\" />
|
||||
<Folder Include="DataAnnotations\SqlServer\" />
|
||||
<Folder Include="DataContext\MySql\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="DataAnnotations\MySql\" />
|
||||
<Folder Include="DataAnnotations\SqlServer\" />
|
||||
<Folder Include="DataContext\MySql\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj" />
|
||||
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.Linq\FreeSql.Extensions.Linq.csproj" />
|
||||
<ProjectReference Include="..\..\FreeSql.DbContext\FreeSql.DbContext.csproj" />
|
||||
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Dameng\FreeSql.Provider.Dameng.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MsAccess\FreeSql.Provider.MsAccess.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MySql\FreeSql.Provider.MySql.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Oracle\FreeSql.Provider.Oracle.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.PostgreSQL\FreeSql.Provider.PostgreSQL.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.ShenTong\FreeSql.Provider.ShenTong.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj" />
|
||||
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.Linq\FreeSql.Extensions.Linq.csproj" />
|
||||
<ProjectReference Include="..\..\FreeSql.DbContext\FreeSql.DbContext.csproj" />
|
||||
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Dameng\FreeSql.Provider.Dameng.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MsAccess\FreeSql.Provider.MsAccess.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MySql\FreeSql.Provider.MySql.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Oracle\FreeSql.Provider.Oracle.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.PostgreSQL\FreeSql.Provider.PostgreSQL.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.ShenTong\FreeSql.Provider.ShenTong.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="DmProvider">
|
||||
<HintPath>..\..\Providers\FreeSql.Provider.Dameng\lib\DmProvider\netstandard2.0\DmProvider.dll</HintPath>
|
||||
</Reference>
|
||||
<ItemGroup>
|
||||
<Reference Include="DmProvider">
|
||||
<HintPath>..\..\Providers\FreeSql.Provider.Dameng\lib\DmProvider\netstandard2.0\DmProvider.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.OscarClient">
|
||||
<HintPath>..\..\Providers\FreeSql.Provider.ShenTong\lib\System.Data.OscarClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Mono.Security">
|
||||
<HintPath>..\..\Providers\FreeSql.Provider.ShenTong\lib\Mono.Security.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||
|
@ -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<Song>().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<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((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);
|
||||
|
@ -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<Song>().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);
|
||||
|
@ -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
|
||||
|
@ -25,84 +25,84 @@ namespace ZX.Model {
|
||||
CheckupGroups = new List<CustomerCheckupGroup>();
|
||||
}
|
||||
|
||||
[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<CustomerCheckupGroup> CheckupGroups { get; set; }
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 外键 => 导航属性,ManyToMany
|
||||
#region 外键 => 导航属性,ManyToMany
|
||||
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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<Song>().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<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((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);
|
||||
|
@ -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<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||
var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList();
|
||||
|
@ -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<Song>().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<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((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);
|
||||
|
@ -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<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||
var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList();
|
||||
|
@ -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<Song>().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<Song>().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);
|
||||
|
@ -53,20 +53,20 @@ namespace FreeSql.Tests.SqlServer
|
||||
{
|
||||
|
||||
//var tt1 = g.sqlserver.Select<xxx>()
|
||||
// .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<xxx>()
|
||||
// .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<xxx>()
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToSql(a => new { a.Id, a.Title });
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToSql(a => new { a.Id, a.Title });
|
||||
|
||||
//var ttresult = g.sqlserver.Select<xxx>()
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToList(a => new { a.Id, a.Title });
|
||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||
// .ToList(a => new { a.Id, a.Title });
|
||||
|
||||
var tnsql1 = g.sqlserver.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id);
|
||||
var tnsql2 = g.sqlserver.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToSql(a => a.Id);
|
||||
|
@ -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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb02>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb022>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb03>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().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<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||
|
@ -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<Song>().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<Song>().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);
|
||||
|
@ -762,14 +762,14 @@ namespace FreeSql.Tests
|
||||
|
||||
//var testaddlist = new List<NewsArticle>();
|
||||
//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<NewsArticle>(testaddlist)
|
||||
// //.NoneParameter()
|
||||
// .ExecuteAffrows();
|
||||
// //.NoneParameter()
|
||||
// .ExecuteAffrows();
|
||||
|
||||
|
||||
g.mysql.Aop.ParseExpression += (s, e) =>
|
||||
@ -1225,9 +1225,9 @@ namespace FreeSql.Tests
|
||||
//);
|
||||
|
||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((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<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user