mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
内部 SQL 格式优化
This commit is contained in:
parent
8d11993e6c
commit
7471df5924
@ -125,6 +125,13 @@
|
|||||||
清空状态数据
|
清空状态数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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)">
|
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||||
<summary>
|
<summary>
|
||||||
添加
|
添加
|
||||||
@ -479,5 +486,14 @@
|
|||||||
<param name="that"></param>
|
<param name="that"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
@ -13,63 +13,63 @@ using Newtonsoft.Json;
|
|||||||
using FreeSql.DataAnnotations;
|
using FreeSql.DataAnnotations;
|
||||||
namespace FreeSql.Jhfw.Models {
|
namespace FreeSql.Jhfw.Models {
|
||||||
|
|
||||||
public interface IBaseModel<TKey>
|
public interface IBaseModel<TKey>
|
||||||
{
|
{
|
||||||
TKey Id { get; set; }
|
TKey Id { get; set; }
|
||||||
}
|
}
|
||||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "bank_outlets")]
|
[JsonObject(MemberSerialization.OptIn), Table(Name = "bank_outlets")]
|
||||||
public partial class BankOutlets : IBaseModel<int>
|
public partial class BankOutlets : IBaseModel<int>
|
||||||
{
|
{
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public int? BankId { get => _BankId; set {
|
public int? BankId { get => _BankId; set {
|
||||||
if (_BankId == value) return;
|
if (_BankId == value) return;
|
||||||
_BankId = value;
|
_BankId = value;
|
||||||
OneBanks = null;
|
OneBanks = null;
|
||||||
}}
|
}}
|
||||||
private int? _BankId;
|
private int? _BankId;
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public int? ParentId { get => _ParentId; set {
|
public int? ParentId { get => _ParentId; set {
|
||||||
if (_ParentId == value) return;
|
if (_ParentId == value) return;
|
||||||
_ParentId = value;
|
_ParentId = value;
|
||||||
OneBankOutlets = null;
|
OneBankOutlets = null;
|
||||||
}}
|
}}
|
||||||
private int? _ParentId;
|
private int? _ParentId;
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public string Address { get; set; } = "";
|
public string Address { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Area { get; set; } = "";
|
public string Area { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty, Column(Name = "ID", IsIdentity = true)]
|
[JsonProperty, Column(Name = "ID", IsIdentity = true)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Name { get; set; } = "";
|
public string Name { get; set; } = "";
|
||||||
|
|
||||||
|
|
||||||
#region 外键 => 导航属性,ManyToOne/OneToOne
|
#region 外键 => 导航属性,ManyToOne/OneToOne
|
||||||
|
|
||||||
[Navigate("BankId")]
|
[Navigate("BankId")]
|
||||||
public virtual Banks OneBanks { get; set; }
|
public virtual Banks OneBanks { get; set; }
|
||||||
|
|
||||||
[Navigate("ParentId")]
|
[Navigate("ParentId")]
|
||||||
public virtual BankOutlets OneBankOutlets { get; set; }
|
public virtual BankOutlets OneBankOutlets { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 外键 => 导航属性,OneToMany
|
#region 外键 => 导航属性,OneToMany
|
||||||
|
|
||||||
[Navigate("ParentId")]
|
[Navigate("ParentId")]
|
||||||
public virtual List<BankOutlets> ManyBankOutlets { get; set; }
|
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;
|
using FreeSql.DataAnnotations;
|
||||||
namespace FreeSql.Jhfw.Models {
|
namespace FreeSql.Jhfw.Models {
|
||||||
|
|
||||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "banks")]
|
[JsonObject(MemberSerialization.OptIn), Table(Name = "banks")]
|
||||||
public partial class Banks : IBaseModel<int>
|
public partial class Banks : IBaseModel<int>
|
||||||
{
|
{
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "datetime")]
|
[JsonProperty, Column(DbType = "datetime")]
|
||||||
public DateTime? Addtime { get; set; }
|
public DateTime? Addtime { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(250)")]
|
[JsonProperty, Column(DbType = "varchar(250)")]
|
||||||
public string Banner { get; set; } = "";
|
public string Banner { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(20)")]
|
[JsonProperty, Column(DbType = "varchar(20)")]
|
||||||
public string City { get; set; } = "";
|
public string City { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty, Column(Name = "ID", IsIdentity = true)]
|
[JsonProperty, Column(Name = "ID", IsIdentity = true)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "tinyint(1)")]
|
[JsonProperty, Column(DbType = "tinyint(1)")]
|
||||||
public bool IsDelete { get; set; }
|
public bool IsDelete { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "tinyint(1)")]
|
[JsonProperty, Column(DbType = "tinyint(1)")]
|
||||||
public bool IsGrab { get; set; }
|
public bool IsGrab { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "tinyint(1)")]
|
[JsonProperty, Column(DbType = "tinyint(1)")]
|
||||||
public bool IsJoinHmd { get; set; }
|
public bool IsJoinHmd { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(100)")]
|
[JsonProperty, Column(DbType = "varchar(100)")]
|
||||||
public string LoanType { get; set; } = "";
|
public string LoanType { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(250)")]
|
[JsonProperty, Column(DbType = "varchar(250)")]
|
||||||
public string Logo { get; set; } = "";
|
public string Logo { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public string Name { get; set; } = "";
|
public string Name { get; set; } = "";
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(3000)")]
|
[JsonProperty, Column(DbType = "varchar(3000)")]
|
||||||
public string Notice { get; set; } = "";
|
public string Notice { get; set; } = "";
|
||||||
|
|
||||||
|
|
||||||
#region 外键 => 导航属性,OneToMany
|
#region 外键 => 导航属性,OneToMany
|
||||||
|
|
||||||
[Navigate("BankId")]
|
[Navigate("BankId")]
|
||||||
public virtual List<BankOutlets> ManyBankOutlets { get; set; }
|
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();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -111,81 +111,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -221,27 +221,27 @@ UNION ALL
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '100002'
|
SELECT 2, '100002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003'
|
SELECT 3, '100003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '100004'
|
SELECT 4, '100004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -265,81 +265,81 @@ INSERT INTO `tbioudb022`(`name`) VALUES('00001'), ('00002'), ('00003'), ('00004'
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '02'
|
SELECT 2, '02', '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03'
|
SELECT 3, '03', '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '04'
|
SELECT 4, '04', '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '002'
|
SELECT 2, '02', '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003'
|
SELECT 3, '03', '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '004'
|
SELECT 4, '04', '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
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();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -361,81 +361,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', 0, now(3)
|
SELECT 2, '02', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, now(3)
|
SELECT 3, '03', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', 0, now(3)
|
SELECT 4, '04', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002', 0, now(3)
|
SELECT 2, '002', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, now(3)
|
SELECT 3, '003', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004', 0, now(3)
|
SELECT 4, '004', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.mysql.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -203,9 +203,9 @@ namespace FreeSql.Tests.MySqlConnector
|
|||||||
var sql3 = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid").ToSql();
|
var sql3 = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid").ToSql();
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -947,8 +947,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -965,8 +965,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -983,8 +983,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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`
|
Assert.Equal(@"SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime`
|
||||||
FROM `tb_topic` a
|
FROM `tb_topic` a
|
||||||
WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1077,12 +1077,12 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.dameng.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -855,8 +855,8 @@ namespace FreeSql.Tests.Odbc.Dameng
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -873,8 +873,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -891,8 +891,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -909,8 +909,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||||
FROM ""TB_TOPIC22"" a
|
FROM ""TB_TOPIC22"" a
|
||||||
WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1004,12 +1004,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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]
|
//SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name]
|
||||||
//FROM [Tag] a
|
//FROM [Tag] a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
||||||
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.odbc.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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]
|
//SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url]
|
||||||
//FROM [Song] a
|
//FROM [Song] a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM [Song_tag] Mt_Ms
|
// FROM [Song_tag] Mt_Ms
|
||||||
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -830,7 +830,7 @@ namespace FreeSql.Tests.Odbc.Default
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -847,7 +847,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -864,7 +864,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -881,7 +881,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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]
|
Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime]
|
||||||
FROM [tb_topic22] a
|
FROM [tb_topic22] a
|
||||||
WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title]
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -974,12 +974,12 @@ WHERE (((cast(a.[Id] as nvarchar)) in (SELECT b.[Title]
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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>()
|
//var tt1 = g.odbc.Select<xxx>()
|
||||||
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
||||||
// .ToSql(a => new { a.Id, a.Title });
|
// .ToSql(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var tt2result = g.odbc.Select<xxx>()
|
//var tt2result = g.odbc.Select<xxx>()
|
||||||
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
||||||
// .ToList(a => new { a.Id, a.Title });
|
// .ToList(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var tt = g.odbc.Select<xxx>()
|
//var tt = g.odbc.Select<xxx>()
|
||||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||||
// .ToSql(a => new { a.Id, a.Title });
|
// .ToSql(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var ttresult = g.odbc.Select<xxx>()
|
//var ttresult = g.odbc.Select<xxx>()
|
||||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||||
// .ToList(a => new { a.Id, a.Title });
|
// .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);
|
var tnsql1 = g.odbc.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToSql(a => a.Id);
|
||||||
|
|
||||||
|
@ -27,62 +27,62 @@
|
|||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ArticleId">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ArticleId">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ArticleTitle">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ArticleTitle">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.CategoryId">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.CategoryId">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ChannelId">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ChannelId">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.TypeId">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.TypeId">
|
||||||
<summary>
|
<summary>
|
||||||
类型
|
类型
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Summary">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Summary">
|
||||||
<summary>
|
<summary>
|
||||||
内容简介
|
内容简介
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Thumbnail">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Thumbnail">
|
||||||
<summary>
|
<summary>
|
||||||
缩略图
|
缩略图
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Hits">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Hits">
|
||||||
<summary>
|
<summary>
|
||||||
点击量
|
点击量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.IsDisplay">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.IsDisplay">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Status">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.Status">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.CreateTime">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.CreateTime">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ReleaseTime">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.NewsArticle.ReleaseTime">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.Odbc.UnitTest1.Templates.Id2">
|
<member name="P:FreeSql.Tests.Odbc.UnitTest1.Templates.Id2">
|
||||||
<summary>
|
<summary>
|
||||||
|
@ -96,22 +96,22 @@ namespace FreeSql.Tests.Odbc.KingbaseES
|
|||||||
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.kingbaseES.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -820,8 +820,8 @@ namespace FreeSql.Tests.Odbc.KingbaseES
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -838,8 +838,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -856,8 +856,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -874,8 +874,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||||
FROM ""TB_TOPIC22"" a
|
FROM ""TB_TOPIC22"" a
|
||||||
WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -969,12 +969,12 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -19,81 +19,81 @@ namespace FreeSql.Tests.Odbc.MySql
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -111,81 +111,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -221,27 +221,27 @@ UNION ALL
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '100002'
|
SELECT 2, '100002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003'
|
SELECT 3, '100003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '100004'
|
SELECT 4, '100004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -265,81 +265,81 @@ INSERT INTO `tbioudb022`(`name`) VALUES('00001'), ('00002'), ('00003'), ('00004'
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '02'
|
SELECT 2, '02', '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03'
|
SELECT 3, '03', '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '04'
|
SELECT 4, '04', '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '002'
|
SELECT 2, '02', '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003'
|
SELECT 3, '03', '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '004'
|
SELECT 4, '04', '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
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();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -361,81 +361,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', 0, now(3)
|
SELECT 2, '02', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, now(3)
|
SELECT 3, '03', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', 0, now(3)
|
SELECT 4, '04', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002', 0, now(3)
|
SELECT 2, '002', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, now(3)
|
SELECT 3, '003', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004', 0, now(3)
|
SELECT 4, '004', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.mysql.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -213,9 +213,9 @@ namespace FreeSql.Tests.Odbc.MySql
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -958,8 +958,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -976,8 +976,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -994,8 +994,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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`
|
Assert.Equal(@"SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime`
|
||||||
FROM `tb_topic` a
|
FROM `tb_topic` a
|
||||||
WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1088,12 +1088,12 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.oracle.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -856,8 +856,8 @@ namespace FreeSql.Tests.Odbc.Oracle
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -874,8 +874,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -892,8 +892,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -910,8 +910,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||||
FROM ""TB_TOPIC22"" a
|
FROM ""TB_TOPIC22"" a
|
||||||
WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1005,12 +1005,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.pgsql.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -189,9 +189,9 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -934,8 +934,8 @@ FROM ""tb_topic"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -952,8 +952,8 @@ FROM ""tb_topic"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -970,8 +970,8 @@ FROM ""tb_topic"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""id"", a.""clicks"", a.""typeguid"", a.""title"", a.""createtime""
|
||||||
FROM ""tb_topic"" a
|
FROM ""tb_topic"" a
|
||||||
WHERE ((((a.""id"")::text) in (SELECT b.""title""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1064,12 +1064,12 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -81,7 +81,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression
|
|||||||
public void Array()
|
public void Array()
|
||||||
{
|
{
|
||||||
//g.pgsql.Aop.CurdAfter = (s, e) => {
|
//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 });
|
IEnumerable<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||||
var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList();
|
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]
|
//SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name]
|
||||||
//FROM [Tag] a
|
//FROM [Tag] a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
||||||
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.sqlserver.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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]
|
//SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url]
|
||||||
//FROM [Song] a
|
//FROM [Song] a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM [Song_tag] Mt_Ms
|
// FROM [Song_tag] Mt_Ms
|
||||||
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -811,7 +811,7 @@ namespace FreeSql.Tests.Odbc.SqlServer
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -828,7 +828,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -845,7 +845,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -862,7 +862,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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]
|
Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime]
|
||||||
FROM [tb_topic22] a
|
FROM [tb_topic22] a
|
||||||
WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title]
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -955,12 +955,12 @@ WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title]
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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>()
|
//var tt1 = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
||||||
// .ToSql(a => new { a.Id, a.Title });
|
// .ToSql(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var tt2result = g.sqlserver.Select<xxx>()
|
//var tt2result = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
||||||
// .ToList(a => new { a.Id, a.Title });
|
// .ToList(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var tt = g.sqlserver.Select<xxx>()
|
//var tt = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||||
// .ToSql(a => new { a.Id, a.Title });
|
// .ToSql(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var ttresult = g.sqlserver.Select<xxx>()
|
//var ttresult = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||||
// .ToList(a => new { a.Id, a.Title });
|
// .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 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);
|
var tnsql2 = g.sqlserver.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToSql(a => a.Id);
|
||||||
|
@ -134,73 +134,73 @@ namespace FreeSql.Tests.Odbc
|
|||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "article_id", IsIdentity = true, IsPrimary = true)]
|
[Column(Name = "article_id", IsIdentity = true, IsPrimary = true)]
|
||||||
public int ArticleId { get; set; }
|
public int ArticleId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "article_title")]
|
[Column(Name = "article_title")]
|
||||||
public string ArticleTitle { get; set; }
|
public string ArticleTitle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "category_id")]
|
[Column(Name = "category_id")]
|
||||||
public int CategoryId { get; set; }
|
public int CategoryId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "channel_id")]
|
[Column(Name = "channel_id")]
|
||||||
public int ChannelId { get; set; }
|
public int ChannelId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 类型
|
/// 类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "type_id")]
|
[Column(Name = "type_id")]
|
||||||
public int TypeId { get; set; }
|
public int TypeId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 内容简介
|
/// 内容简介
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "summary")]
|
[Column(Name = "summary")]
|
||||||
public string Summary { get; set; }
|
public string Summary { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 缩略图
|
/// 缩略图
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "thumbnail")]
|
[Column(Name = "thumbnail")]
|
||||||
public string Thumbnail { get; set; }
|
public string Thumbnail { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 点击量
|
/// 点击量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "hits")]
|
[Column(Name = "hits")]
|
||||||
public int Hits { get; set; }
|
public int Hits { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "is_display")]
|
[Column(Name = "is_display")]
|
||||||
public int IsDisplay { get; set; }
|
public int IsDisplay { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "status")]
|
[Column(Name = "status")]
|
||||||
public int Status { get; set; }
|
public int Status { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "create_time")]
|
[Column(Name = "create_time")]
|
||||||
public int CreateTime { get; set; }
|
public int CreateTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "release_time")]
|
[Column(Name = "release_time")]
|
||||||
public int ReleaseTime { get; set; }
|
public int ReleaseTime { get; set; }
|
||||||
|
|
||||||
@ -475,14 +475,14 @@ WHERE ROWNUM < 11";
|
|||||||
|
|
||||||
//var testaddlist = new List<NewsArticle>();
|
//var testaddlist = new List<NewsArticle>();
|
||||||
//for(var a = 0; a < 133905; a++) {
|
//for(var a = 0; a < 133905; a++) {
|
||||||
// testaddlist.Add(new NewsArticle {
|
// testaddlist.Add(new NewsArticle {
|
||||||
// ArticleTitle = "testaddlist_topic" + a,
|
// ArticleTitle = "testaddlist_topic" + a,
|
||||||
// Hits = a,
|
// Hits = a,
|
||||||
// });
|
// });
|
||||||
//}
|
//}
|
||||||
//g.mysql.Insert<NewsArticle>(testaddlist)
|
//g.mysql.Insert<NewsArticle>(testaddlist)
|
||||||
// //.NoneParameter()
|
// //.NoneParameter()
|
||||||
// .ExecuteAffrows();
|
// .ExecuteAffrows();
|
||||||
|
|
||||||
|
|
||||||
g.mysql.Aop.ParseExpression += (s, e) =>
|
g.mysql.Aop.ParseExpression += (s, e) =>
|
||||||
@ -872,9 +872,9 @@ WHERE ROWNUM < 11";
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.dameng.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -855,8 +855,8 @@ namespace FreeSql.Tests.Dameng
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -873,8 +873,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -891,8 +891,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -909,8 +909,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||||
FROM ""TB_TOPIC22"" a
|
FROM ""TB_TOPIC22"" a
|
||||||
WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1005,12 +1005,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -68,9 +68,9 @@ namespace FreeSql.Tests.DataAnnotations
|
|||||||
{
|
{
|
||||||
g.mysql.CodeFirst
|
g.mysql.CodeFirst
|
||||||
//.ConfigEntity<TestFluenttb1>(a => {
|
//.ConfigEntity<TestFluenttb1>(a => {
|
||||||
// a.Name("xxdkdkdk1");
|
// a.Name("xxdkdkdk1");
|
||||||
// a.Property(b => b.Id).Name("Id22").IsIdentity(true);
|
// a.Property(b => b.Id).Name("Id22").IsIdentity(true);
|
||||||
// a.Property(b => b.name).DbType("varchar(100)").IsNullable(true);
|
// a.Property(b => b.name).DbType("varchar(100)").IsNullable(true);
|
||||||
//})
|
//})
|
||||||
|
|
||||||
.ConfigEntity(typeof(TestFluenttb1), a =>
|
.ConfigEntity(typeof(TestFluenttb1), a =>
|
||||||
|
@ -41,9 +41,9 @@ namespace FreeSql.Tests.DataAnnotations
|
|||||||
{
|
{
|
||||||
g.sqlserver.CodeFirst
|
g.sqlserver.CodeFirst
|
||||||
//.ConfigEntity<TestFluenttb1>(a => {
|
//.ConfigEntity<TestFluenttb1>(a => {
|
||||||
// a.Name("xxdkdkdk1");
|
// a.Name("xxdkdkdk1");
|
||||||
// a.Property(b => b.Id).Name("Id22").IsIdentity(true);
|
// a.Property(b => b.Id).Name("Id22").IsIdentity(true);
|
||||||
// a.Property(b => b.name).DbType("varchar(100)").IsNullable(true);
|
// a.Property(b => b.name).DbType("varchar(100)").IsNullable(true);
|
||||||
//})
|
//})
|
||||||
|
|
||||||
.ConfigEntity(typeof(TestFluenttb1), a =>
|
.ConfigEntity(typeof(TestFluenttb1), a =>
|
||||||
|
@ -1,61 +1,61 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
<DocumentationFile>FreeSql.Tests.xml</DocumentationFile>
|
<DocumentationFile>FreeSql.Tests.xml</DocumentationFile>
|
||||||
<WarningLevel>3</WarningLevel>
|
<WarningLevel>3</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Dapper" Version="2.0.35" />
|
<PackageReference Include="Dapper" Version="2.0.35" />
|
||||||
<PackageReference Include="IdleBus" Version="1.3.0" />
|
<PackageReference Include="IdleBus" Version="1.3.0" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
||||||
<PackageReference Include="xunit" Version="2.4.1" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="DataAnnotations\MySql\" />
|
<Folder Include="DataAnnotations\MySql\" />
|
||||||
<Folder Include="DataAnnotations\SqlServer\" />
|
<Folder Include="DataAnnotations\SqlServer\" />
|
||||||
<Folder Include="DataContext\MySql\" />
|
<Folder Include="DataContext\MySql\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj" />
|
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj" />
|
||||||
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.Linq\FreeSql.Extensions.Linq.csproj" />
|
<ProjectReference Include="..\..\Extensions\FreeSql.Extensions.Linq\FreeSql.Extensions.Linq.csproj" />
|
||||||
<ProjectReference Include="..\..\FreeSql.DbContext\FreeSql.DbContext.csproj" />
|
<ProjectReference Include="..\..\FreeSql.DbContext\FreeSql.DbContext.csproj" />
|
||||||
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
||||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Dameng\FreeSql.Provider.Dameng.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.MsAccess\FreeSql.Provider.MsAccess.csproj" />
|
||||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.MySql\FreeSql.Provider.MySql.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.Oracle\FreeSql.Provider.Oracle.csproj" />
|
||||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.PostgreSQL\FreeSql.Provider.PostgreSQL.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.ShenTong\FreeSql.Provider.ShenTong.csproj" />
|
||||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj" />
|
<ProjectReference Include="..\..\Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj" />
|
||||||
<ProjectReference Include="..\..\Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj" />
|
<ProjectReference Include="..\..\Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DmProvider">
|
<Reference Include="DmProvider">
|
||||||
<HintPath>..\..\Providers\FreeSql.Provider.Dameng\lib\DmProvider\netstandard2.0\DmProvider.dll</HintPath>
|
<HintPath>..\..\Providers\FreeSql.Provider.Dameng\lib\DmProvider\netstandard2.0\DmProvider.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data.OscarClient">
|
<Reference Include="System.Data.OscarClient">
|
||||||
<HintPath>..\..\Providers\FreeSql.Provider.ShenTong\lib\System.Data.OscarClient.dll</HintPath>
|
<HintPath>..\..\Providers\FreeSql.Provider.ShenTong\lib\System.Data.OscarClient.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Mono.Security">
|
<Reference Include="Mono.Security">
|
||||||
<HintPath>..\..\Providers\FreeSql.Provider.ShenTong\lib\Mono.Security.dll</HintPath>
|
<HintPath>..\..\Providers\FreeSql.Provider.ShenTong\lib\Mono.Security.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -27,62 +27,62 @@
|
|||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ArticleId">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ArticleId">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ArticleTitle">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ArticleTitle">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.CategoryId">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.CategoryId">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ChannelId">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ChannelId">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.TypeId">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.TypeId">
|
||||||
<summary>
|
<summary>
|
||||||
类型
|
类型
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Summary">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Summary">
|
||||||
<summary>
|
<summary>
|
||||||
内容简介
|
内容简介
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Thumbnail">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Thumbnail">
|
||||||
<summary>
|
<summary>
|
||||||
缩略图
|
缩略图
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Hits">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Hits">
|
||||||
<summary>
|
<summary>
|
||||||
点击量
|
点击量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.IsDisplay">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.IsDisplay">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Status">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.Status">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.CreateTime">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.CreateTime">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ReleaseTime">
|
<member name="P:FreeSql.Tests.UnitTest1.NewsArticle.ReleaseTime">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.Tests.UnitTest1.Templates.Id2">
|
<member name="P:FreeSql.Tests.UnitTest1.Templates.Id2">
|
||||||
<summary>
|
<summary>
|
||||||
|
@ -85,22 +85,22 @@ namespace FreeSql.Tests.MsAccess
|
|||||||
//SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name]
|
//SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name]
|
||||||
//FROM [Tag] a
|
//FROM [Tag] a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
||||||
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.msaccess.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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]
|
//SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url]
|
||||||
//FROM [Song] a
|
//FROM [Song] a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM [Song_tag] Mt_Ms
|
// FROM [Song_tag] Mt_Ms
|
||||||
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -831,7 +831,7 @@ namespace FreeSql.Tests.MsAccess
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -848,7 +848,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -865,7 +865,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -882,7 +882,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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]
|
Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime]
|
||||||
FROM [tb_topic22] a
|
FROM [tb_topic22] a
|
||||||
WHERE (((cstr(a.[Id])) in (SELECT b.[Title]
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -975,12 +975,12 @@ WHERE (((cstr(a.[Id])) in (SELECT b.[Title]
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -19,81 +19,81 @@ namespace FreeSql.Tests.MySql
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO `tbioudb02`(`id`, `name`) SELECT 1, '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb02` a
|
FROM `tbioudb02` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -111,81 +111,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -221,27 +221,27 @@ UNION ALL
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001'
|
Assert.Equal(@"INSERT INTO `tbioudb022`(`id`, `name`) SELECT 1, '100001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '100002'
|
SELECT 2, '100002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003'
|
SELECT 3, '100003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '100004'
|
SELECT 4, '100004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb022` a
|
FROM `tbioudb022` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -265,81 +265,81 @@ INSERT INTO `tbioudb022`(`name`) VALUES('00001'), ('00002'), ('00003'), ('00004'
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '011'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 2, '02', '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '01'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '02'
|
SELECT 2, '02', '02'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03'
|
SELECT 3, '03', '03'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '04'
|
SELECT 4, '04', '04'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001'
|
Assert.Equal(@"INSERT INTO `tbioudb03`(`id1`, `id2`, `name`) SELECT 1, '01', '001'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
WHERE (a.`id1` = 1 AND a.`id2` = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '002'
|
SELECT 2, '02', '002'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
WHERE (a.`id1` = 2 AND a.`id2` = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003'
|
SELECT 3, '03', '003'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
WHERE (a.`id1` = 3 AND a.`id2` = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '004'
|
SELECT 4, '04', '004'
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb03` a
|
FROM `tbioudb03` a
|
||||||
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
WHERE (a.`id1` = 4 AND a.`id2` = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
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();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -361,81 +361,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '011', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 2, '02', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '01', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', 0, now(3)
|
SELECT 2, '02', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, now(3)
|
SELECT 3, '03', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', 0, now(3)
|
SELECT 4, '04', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3)
|
Assert.Equal(@"INSERT INTO `tbioudb04`(`id`, `name`, `version`, `CreateTime`) SELECT 1, '001', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 1)
|
WHERE (a.`id` = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002', 0, now(3)
|
SELECT 2, '002', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 2)
|
WHERE (a.`id` = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, now(3)
|
SELECT 3, '003', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 3)
|
WHERE (a.`id` = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004', 0, now(3)
|
SELECT 4, '004', 0, now(3)
|
||||||
FROM dual WHERE NOT EXISTS(SELECT 1
|
FROM dual WHERE NOT EXISTS(SELECT 1
|
||||||
FROM `tbioudb04` a
|
FROM `tbioudb04` a
|
||||||
WHERE (a.`id` = 4)
|
WHERE (a.`id` = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.mysql.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -213,9 +213,9 @@ namespace FreeSql.Tests.MySql
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -994,8 +994,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -1012,8 +1012,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -1030,8 +1030,8 @@ FROM `tb_topic` a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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`)
|
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
|
FROM `tb_topic` b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM `tb_topic` a", subquery);
|
FROM `tb_topic` a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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`
|
Assert.Equal(@"SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime`
|
||||||
FROM `tb_topic` a
|
FROM `tb_topic` a
|
||||||
WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1124,12 +1124,12 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
@ -1157,10 +1157,10 @@ WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
|
|||||||
|
|
||||||
Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2
|
Assert.Equal(@"SELECT a.`Id` as1, a.`Clicks` as2
|
||||||
FROM (SELECT * from (SELECT a.`Id` Id, a.`Clicks` Clicks
|
FROM (SELECT * from (SELECT a.`Id` Id, a.`Clicks` Clicks
|
||||||
FROM `tb_topic_1` a) ftb
|
FROM `tb_topic_1` a) ftb
|
||||||
|
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
SELECT * from (SELECT a.`Id` Id, a.`Clicks` Clicks
|
SELECT * from (SELECT a.`Id` Id, a.`Clicks` Clicks
|
||||||
FROM `tb_topic_2` a) ftb) a
|
FROM `tb_topic_2` a) ftb) a
|
||||||
limit 0,20", select
|
limit 0,20", select
|
||||||
|
@ -96,22 +96,22 @@ namespace FreeSql.Tests.Oracle
|
|||||||
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.oracle.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -856,8 +856,8 @@ namespace FreeSql.Tests.Oracle
|
|||||||
count = (long)select.As("b").Sum(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -874,8 +874,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -892,8 +892,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -910,8 +910,8 @@ FROM ""TB_TOPIC22"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC22"" b
|
||||||
WHERE ROWNUM < 2) as6
|
WHERE ROWNUM < 2) as6
|
||||||
FROM ""TB_TOPIC22"" a", subquery);
|
FROM ""TB_TOPIC22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||||
FROM ""TB_TOPIC22"" a
|
FROM ""TB_TOPIC22"" a
|
||||||
WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1005,12 +1005,12 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -18,67 +18,67 @@ using FreeSql.DataAnnotations;
|
|||||||
|
|
||||||
namespace ZX.Model {
|
namespace ZX.Model {
|
||||||
|
|
||||||
[JsonObject(MemberSerialization.OptIn)]
|
[JsonObject(MemberSerialization.OptIn)]
|
||||||
public class CustomerCheckupGroup {
|
public class CustomerCheckupGroup {
|
||||||
|
|
||||||
[JsonProperty, Column(IsPrimary = true)]
|
[JsonProperty, Column(IsPrimary = true)]
|
||||||
public short ShopId { get => _ShopId; set {
|
public short ShopId { get => _ShopId; set {
|
||||||
if (_ShopId == value) return;
|
if (_ShopId == value) return;
|
||||||
_ShopId = value;
|
_ShopId = value;
|
||||||
} }
|
} }
|
||||||
private short _ShopId;
|
private short _ShopId;
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)", IsPrimary = true)]
|
[JsonProperty, Column(DbType = "varchar(50)", IsPrimary = true)]
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "nvarchar(50)")]
|
[JsonProperty, Column(DbType = "nvarchar(50)")]
|
||||||
public string MemberId { get => _MemberId; set {
|
public string MemberId { get => _MemberId; set {
|
||||||
if (_MemberId == value) return;
|
if (_MemberId == value) return;
|
||||||
_MemberId = value;
|
_MemberId = value;
|
||||||
} }
|
} }
|
||||||
private string _MemberId;
|
private string _MemberId;
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Discount { get; set; }
|
public string Discount { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Doctor { get; set; }
|
public string Doctor { get; set; }
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public DateTime? FirstTime { get; set; }
|
public DateTime? FirstTime { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Group { get; set; }
|
public string Group { get; set; }
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public DateTime? InsertTime { get; set; }
|
public DateTime? InsertTime { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(Name = "isOK")]
|
[JsonProperty, Column(Name = "isOK")]
|
||||||
public bool? IsOK { get; set; }
|
public bool? IsOK { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(Name = "isPay", DbType = "varchar(50)")]
|
[JsonProperty, Column(Name = "isPay", DbType = "varchar(50)")]
|
||||||
public string IsPay { get; set; }
|
public string IsPay { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Office { get; set; }
|
public string Office { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string PayType { get; set; }
|
public string PayType { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "decimal(9,2)")]
|
[JsonProperty, Column(DbType = "decimal(9,2)")]
|
||||||
public decimal? Price { get; set; }
|
public decimal? Price { get; set; }
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public DateTime? UpdateTime { get; set; }
|
public DateTime? UpdateTime { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "decimal(9,2)")]
|
[JsonProperty, Column(DbType = "decimal(9,2)")]
|
||||||
public decimal? Value { get; set; }
|
public decimal? Value { get; set; }
|
||||||
|
|
||||||
|
|
||||||
#region 外键 => 导航属性,ManyToOne/OneToOne
|
#region 外键 => 导航属性,ManyToOne/OneToOne
|
||||||
|
|
||||||
[Navigate("ShopId, MemberId")]
|
[Navigate("ShopId, MemberId")]
|
||||||
public virtual CustomerMember CustomerMember { get; set; }
|
public virtual CustomerMember CustomerMember { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 外键 => 导航属性,ManyToMany
|
#region 外键 => 导航属性,ManyToMany
|
||||||
|
@ -25,84 +25,84 @@ namespace ZX.Model {
|
|||||||
CheckupGroups = new List<CustomerCheckupGroup>();
|
CheckupGroups = new List<CustomerCheckupGroup>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "nvarchar(50)", IsPrimary = true)]
|
[JsonProperty, Column(DbType = "nvarchar(50)", IsPrimary = true)]
|
||||||
public string MemberId { get; set; }
|
public string MemberId { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(IsPrimary = true)]
|
[JsonProperty, Column(IsPrimary = true)]
|
||||||
public short ShopId { get; set; }
|
public short ShopId { get; set; }
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public long? CustomerId { get => _CustomerId; set {
|
public long? CustomerId { get => _CustomerId; set {
|
||||||
if (_CustomerId == value) return;
|
if (_CustomerId == value) return;
|
||||||
_CustomerId = value;
|
_CustomerId = value;
|
||||||
} }
|
} }
|
||||||
private long? _CustomerId;
|
private long? _CustomerId;
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(500)")]
|
[JsonProperty, Column(DbType = "varchar(500)")]
|
||||||
public string Address { get; set; }
|
public string Address { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "smalldatetime")]
|
[JsonProperty, Column(DbType = "smalldatetime")]
|
||||||
public DateTime? Birthday { get; set; }
|
public DateTime? Birthday { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string CardNo { get; set; }
|
public string CardNo { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string CardType { get; set; }
|
public string CardType { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Doctor { get; set; }
|
public string Doctor { get; set; }
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public DateTime? EndDate { get; set; }
|
public DateTime? EndDate { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Group { get; set; }
|
public string Group { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Marry { get; set; }
|
public string Marry { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Part { get; set; }
|
public string Part { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string PayType { get; set; }
|
public string PayType { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Phone { get; set; }
|
public string Phone { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(10)")]
|
[JsonProperty, Column(DbType = "varchar(10)")]
|
||||||
public string Sex { get; set; }
|
public string Sex { get; set; }
|
||||||
|
|
||||||
[JsonProperty]
|
[JsonProperty]
|
||||||
public DateTime? StartDate { get; set; }
|
public DateTime? StartDate { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "text")]
|
[JsonProperty, Column(DbType = "text")]
|
||||||
public string Suggest { get; set; }
|
public string Suggest { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "text")]
|
[JsonProperty, Column(DbType = "text")]
|
||||||
public string SumUp { get; set; }
|
public string SumUp { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "varchar(50)")]
|
[JsonProperty, Column(DbType = "varchar(50)")]
|
||||||
public string Team { get; set; }
|
public string Team { get; set; }
|
||||||
|
|
||||||
[JsonProperty, Column(DbType = "decimal(9,2)")]
|
[JsonProperty, Column(DbType = "decimal(9,2)")]
|
||||||
public decimal? TotalFee { get; set; }
|
public decimal? TotalFee { get; set; }
|
||||||
|
|
||||||
|
|
||||||
#region 外键 => 导航属性,ManyToOne/OneToOne
|
#region 外键 => 导航属性,ManyToOne/OneToOne
|
||||||
|
|
||||||
[Navigate("MemberId,ShopId")]
|
[Navigate("MemberId,ShopId")]
|
||||||
public virtual List<CustomerCheckupGroup> CheckupGroups { get; set; }
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.pgsql.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -189,9 +189,9 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -951,8 +951,8 @@ FROM ""tb_topic"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -969,8 +969,8 @@ FROM ""tb_topic"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -987,8 +987,8 @@ FROM ""tb_topic"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""tb_topic"" a", subquery);
|
FROM ""tb_topic"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""id"", a.""clicks"", a.""typeguid"", a.""title"", a.""createtime""
|
||||||
FROM ""tb_topic"" a
|
FROM ""tb_topic"" a
|
||||||
WHERE ((((a.""id"")::text) in (SELECT b.""title""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1081,12 +1081,12 @@ WHERE ((((a.""id"")::text) in (SELECT b.""title""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -85,7 +85,7 @@ namespace FreeSql.Tests.PostgreSQLExpression
|
|||||||
public void Array()
|
public void Array()
|
||||||
{
|
{
|
||||||
//g.pgsql.Aop.CurdAfter = (s, e) => {
|
//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 });
|
IEnumerable<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||||
var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList();
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.shentong.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -189,9 +189,9 @@ namespace FreeSql.Tests.ShenTong
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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)
|
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"")
|
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
|
FROM ""TB_TOPIC"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC"" a", subquery);
|
FROM ""TB_TOPIC"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -951,8 +951,8 @@ FROM ""TB_TOPIC"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC"" a", subquery);
|
FROM ""TB_TOPIC"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -969,8 +969,8 @@ FROM ""TB_TOPIC"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC"" a", subquery);
|
FROM ""TB_TOPIC"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -987,8 +987,8 @@ FROM ""TB_TOPIC"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""TB_TOPIC"" b
|
||||||
limit 1) as6
|
limit 1) as6
|
||||||
FROM ""TB_TOPIC"" a", subquery);
|
FROM ""TB_TOPIC"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""ID"", a.""CLICKS"", a.""TYPEGUID"", a.""TITLE"", a.""CREATETIME""
|
||||||
FROM ""TB_TOPIC"" a
|
FROM ""TB_TOPIC"" a
|
||||||
WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1081,12 +1081,12 @@ WHERE ((((a.""ID"")::text) in (SELECT b.""TITLE""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -76,7 +76,7 @@ namespace FreeSql.Tests.ShenTongExpression
|
|||||||
public void Array()
|
public void Array()
|
||||||
{
|
{
|
||||||
//g.shentong.Aop.CurdAfter = (s, e) => {
|
//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 });
|
IEnumerable<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
|
||||||
var testlinq = select.Where(a => testlinqlist.Contains(a.testFieldInt)).ToList();
|
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]
|
//SELECT a.[Id], a.[Parent_id], a.[Ddd], a.[Name]
|
||||||
//FROM [Tag] a
|
//FROM [Tag] a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
// LEFT JOIN [Tag] t__Parent ON t__Parent.[Id] = t.[Parent_id]
|
||||||
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
// WHERE (t__Parent.[Id] = 10) AND (t.[Parent_id] = a.[Id])
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.sqlserver.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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]
|
//SELECT a.[Id], a.[Create_time], a.[Is_deleted], a.[Title], a.[Url]
|
||||||
//FROM [Song] a
|
//FROM [Song] a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM [Song_tag] Mt_Ms
|
// FROM [Song_tag] Mt_Ms
|
||||||
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.[Song_id] = a.[Id]) AND(exists(SELECT 1
|
||||||
// FROM [Tag] t
|
// FROM [Tag] t
|
||||||
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
// WHERE(t.[Name] = '国语') AND(t.[Id] = Mt_Ms.[Tag_id])
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
|
|
||||||
var t3 = g.sqlserver.Select<Song>().ToList(r => new
|
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)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -884,7 +884,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -901,7 +901,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -918,7 +918,7 @@ FROM [tb_topic22] a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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])
|
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);
|
FROM [tb_topic22] a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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]
|
Assert.Equal(@"SELECT a.[Id], a.[Clicks], a.[TypeGuid], a.[Title], a.[CreateTime]
|
||||||
FROM [tb_topic22] a
|
FROM [tb_topic22] a
|
||||||
WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title]
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1011,12 +1011,12 @@ WHERE (((cast(a.[Id] as nvarchar(100))) in (SELECT b.[Title]
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
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>()
|
//var tt1 = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
||||||
// .ToSql(a => new { a.Id, a.Title });
|
// .ToSql(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var tt2result = g.sqlserver.Select<xxx>()
|
//var tt2result = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
// .LeftJoin(a => a.ParentId == a.Parent.Id)
|
||||||
// .ToList(a => new { a.Id, a.Title });
|
// .ToList(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var tt = g.sqlserver.Select<xxx>()
|
//var tt = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||||
// .ToSql(a => new { a.Id, a.Title });
|
// .ToSql(a => new { a.Id, a.Title });
|
||||||
|
|
||||||
//var ttresult = g.sqlserver.Select<xxx>()
|
//var ttresult = g.sqlserver.Select<xxx>()
|
||||||
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
// .LeftJoin<xxx>((a, b) => b.Id == a.Id)
|
||||||
// .ToList(a => new { a.Id, a.Title });
|
// .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 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);
|
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();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '01'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '011'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 2, '02'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '01'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO ""tbioudb02""(""id"", ""name"") SELECT 1, '001'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb02"" a
|
FROM ""tbioudb02"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -111,81 +111,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '01'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '011'
|
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '011'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 2, '02'
|
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 2, '02'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '01'
|
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '01'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04'
|
SELECT 4, '04'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '001'
|
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '001'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004'
|
SELECT 4, '004'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -221,27 +221,27 @@ UNION ALL
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '100001'
|
Assert.Equal(@"INSERT INTO ""tbioudb022""(""id"", ""name"") SELECT 1, '100001'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '100002'
|
SELECT 2, '100002'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003'
|
SELECT 3, '100003'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '100004'
|
SELECT 4, '100004'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb022"" a
|
FROM ""tbioudb022"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -265,81 +265,81 @@ INSERT INTO ""tbioudb022""(""name"") VALUES('00001'), ('00002'), ('00003'), ('00
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '01'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '011'
|
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '011'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 2, '02', '02'
|
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 2, '02', '02'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 2 AND a.""id2"" = '02')
|
WHERE (a.""id1"" = 2 AND a.""id2"" = '02')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '01'
|
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '01'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '02'
|
SELECT 2, '02', '02'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 2 AND a.""id2"" = '02')
|
WHERE (a.""id1"" = 2 AND a.""id2"" = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03'
|
SELECT 3, '03', '03'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 3 AND a.""id2"" = '03')
|
WHERE (a.""id1"" = 3 AND a.""id2"" = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '04'
|
SELECT 4, '04', '04'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 4 AND a.""id2"" = '04')
|
WHERE (a.""id1"" = 4 AND a.""id2"" = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '001'
|
Assert.Equal(@"INSERT INTO ""tbioudb03""(""id1"", ""id2"", ""name"") SELECT 1, '01', '001'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
WHERE (a.""id1"" = 1 AND a.""id2"" = '01')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', '002'
|
SELECT 2, '02', '002'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 2 AND a.""id2"" = '02')
|
WHERE (a.""id1"" = 2 AND a.""id2"" = '02')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003'
|
SELECT 3, '03', '003'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 3 AND a.""id2"" = '03')
|
WHERE (a.""id1"" = 3 AND a.""id2"" = '03')
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', '004'
|
SELECT 4, '04', '004'
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb03"" a
|
FROM ""tbioudb03"" a
|
||||||
WHERE (a.""id1"" = 4 AND a.""id2"" = '04')
|
WHERE (a.""id1"" = 4 AND a.""id2"" = '04')
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
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();
|
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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -361,81 +361,81 @@ UNION ALL
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '01', 0, datetime(current_timestamp,'localtime')
|
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '01', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '011', 0, datetime(current_timestamp,'localtime')
|
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '011', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 2, '02', 0, datetime(current_timestamp,'localtime')
|
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 2, '02', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '01', 0, datetime(current_timestamp,'localtime')
|
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '01', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02', 0, datetime(current_timestamp,'localtime')
|
SELECT 2, '02', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, datetime(current_timestamp,'localtime')
|
SELECT 3, '03', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04', 0, datetime(current_timestamp,'localtime')
|
SELECT 4, '04', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
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" } });
|
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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '001', 0, datetime(current_timestamp,'localtime')
|
Assert.Equal(@"INSERT INTO ""tbioudb04""(""id"", ""name"", ""version"", ""CreateTime"") SELECT 1, '001', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 1)
|
WHERE (a.""id"" = 1)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002', 0, datetime(current_timestamp,'localtime')
|
SELECT 2, '002', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 2)
|
WHERE (a.""id"" = 2)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, datetime(current_timestamp,'localtime')
|
SELECT 3, '003', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 3)
|
WHERE (a.""id"" = 3)
|
||||||
limit 0,1)
|
limit 0,1)
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004', 0, datetime(current_timestamp,'localtime')
|
SELECT 4, '004', 0, datetime(current_timestamp,'localtime')
|
||||||
WHERE NOT EXISTS(SELECT 1
|
WHERE NOT EXISTS(SELECT 1
|
||||||
FROM ""tbioudb04"" a
|
FROM ""tbioudb04"" a
|
||||||
WHERE (a.""id"" = 4)
|
WHERE (a.""id"" = 4)
|
||||||
limit 0,1)", sql);
|
limit 0,1)", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
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());
|
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`
|
//SELECT a.`Id`, a.`Parent_id`, a.`Ddd`, a.`Name`
|
||||||
//FROM `Tag` a
|
//FROM `Tag` a
|
||||||
//WHERE (exists(SELECT 1
|
//WHERE (exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
// LEFT JOIN `Tag` t__Parent ON t__Parent.`Id` = t.`Parent_id`
|
||||||
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
// WHERE (t__Parent.`Id` = 10) AND (t.`Parent_id` = a.`Id`)
|
||||||
// limit 0,1))
|
// limit 0,1))
|
||||||
|
|
||||||
//ManyToMany
|
//ManyToMany
|
||||||
var t2 = g.sqlite.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
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`
|
//SELECT a.`Id`, a.`Create_time`, a.`Is_deleted`, a.`Title`, a.`Url`
|
||||||
//FROM `Song` a
|
//FROM `Song` a
|
||||||
//WHERE(exists(SELECT 1
|
//WHERE(exists(SELECT 1
|
||||||
// FROM `Song_tag` Mt_Ms
|
// FROM `Song_tag` Mt_Ms
|
||||||
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
// WHERE(Mt_Ms.`Song_id` = a.`Id`) AND(exists(SELECT 1
|
||||||
// FROM `Tag` t
|
// FROM `Tag` t
|
||||||
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
// WHERE(t.`Name` = '国语') AND(t.`Id` = Mt_Ms.`Tag_id`)
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
// limit 0, 1))
|
// limit 0, 1))
|
||||||
|
|
||||||
var t3 = g.sqlite.Select<Song>().ToList(r => new
|
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)
|
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"")
|
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
|
FROM ""tb_topic22"" b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM ""tb_topic22"" a", subquery);
|
FROM ""tb_topic22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -839,8 +839,8 @@ FROM ""tb_topic22"" a", subquery);
|
|||||||
count = select.As("b").Min(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic22"" b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM ""tb_topic22"" a", subquery);
|
FROM ""tb_topic22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -857,8 +857,8 @@ FROM ""tb_topic22"" a", subquery);
|
|||||||
count = select.As("b").Max(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic22"" b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM ""tb_topic22"" a", subquery);
|
FROM ""tb_topic22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
var subqueryList = select.ToList(a => new
|
||||||
{
|
{
|
||||||
@ -875,8 +875,8 @@ FROM ""tb_topic22"" a", subquery);
|
|||||||
count = select.As("b").Avg(b => b.Id)
|
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"")
|
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
|
FROM ""tb_topic22"" b
|
||||||
limit 0,1) as6
|
limit 0,1) as6
|
||||||
FROM ""tb_topic22"" a", subquery);
|
FROM ""tb_topic22"" a", subquery);
|
||||||
var subqueryList = select.ToList(a => new
|
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""
|
Assert.Equal(@"SELECT a.""Id"", a.""Clicks"", a.""TypeGuid"", a.""Title"", a.""CreateTime""
|
||||||
FROM ""tb_topic22"" a
|
FROM ""tb_topic22"" a
|
||||||
WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title""
|
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();
|
var subqueryList = select.Where(a => select.As("b").ToList(b => b.Title).Contains(a.Id.ToString())).ToList();
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -1001,12 +1001,12 @@ WHERE (((cast(a.""Id"" as character)) in (SELECT b.""Title""
|
|||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql().Replace("\r\n", "");
|
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.ToList();
|
||||||
|
|
||||||
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
query = select.AsTable((_, old) => old).AsTable((_, old) => old);
|
||||||
sql = query.ToSql("count(1) as1").Replace("\r\n", "");
|
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();
|
query.Count();
|
||||||
|
|
||||||
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
select.AsTable((_, old) => old).AsTable((_, old) => old).Max(a => a.Id);
|
||||||
|
@ -183,73 +183,73 @@ namespace FreeSql.Tests
|
|||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "article_id", IsIdentity = true, IsPrimary = true)]
|
[Column(Name = "article_id", IsIdentity = true, IsPrimary = true)]
|
||||||
public int ArticleId { get; set; }
|
public int ArticleId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "article_title")]
|
[Column(Name = "article_title")]
|
||||||
public string ArticleTitle { get; set; }
|
public string ArticleTitle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "category_id")]
|
[Column(Name = "category_id")]
|
||||||
public int CategoryId { get; set; }
|
public int CategoryId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "channel_id")]
|
[Column(Name = "channel_id")]
|
||||||
public int ChannelId { get; set; }
|
public int ChannelId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 类型
|
/// 类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "type_id")]
|
[Column(Name = "type_id")]
|
||||||
public int TypeId { get; set; }
|
public int TypeId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 内容简介
|
/// 内容简介
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "summary")]
|
[Column(Name = "summary")]
|
||||||
public string Summary { get; set; }
|
public string Summary { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 缩略图
|
/// 缩略图
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "thumbnail")]
|
[Column(Name = "thumbnail")]
|
||||||
public string Thumbnail { get; set; }
|
public string Thumbnail { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 点击量
|
/// 点击量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "hits")]
|
[Column(Name = "hits")]
|
||||||
public int Hits { get; set; }
|
public int Hits { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "is_display")]
|
[Column(Name = "is_display")]
|
||||||
public int IsDisplay { get; set; }
|
public int IsDisplay { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "status")]
|
[Column(Name = "status")]
|
||||||
public int Status { get; set; }
|
public int Status { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "create_time")]
|
[Column(Name = "create_time")]
|
||||||
public int CreateTime { get; set; }
|
public int CreateTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(Name = "release_time")]
|
[Column(Name = "release_time")]
|
||||||
public int ReleaseTime { get; set; }
|
public int ReleaseTime { get; set; }
|
||||||
|
|
||||||
@ -762,14 +762,14 @@ namespace FreeSql.Tests
|
|||||||
|
|
||||||
//var testaddlist = new List<NewsArticle>();
|
//var testaddlist = new List<NewsArticle>();
|
||||||
//for(var a = 0; a < 133905; a++) {
|
//for(var a = 0; a < 133905; a++) {
|
||||||
// testaddlist.Add(new NewsArticle {
|
// testaddlist.Add(new NewsArticle {
|
||||||
// ArticleTitle = "testaddlist_topic" + a,
|
// ArticleTitle = "testaddlist_topic" + a,
|
||||||
// Hits = a,
|
// Hits = a,
|
||||||
// });
|
// });
|
||||||
//}
|
//}
|
||||||
//g.sqlite.Insert<NewsArticle>(testaddlist)
|
//g.sqlite.Insert<NewsArticle>(testaddlist)
|
||||||
// //.NoneParameter()
|
// //.NoneParameter()
|
||||||
// .ExecuteAffrows();
|
// .ExecuteAffrows();
|
||||||
|
|
||||||
|
|
||||||
g.mysql.Aop.ParseExpression += (s, e) =>
|
g.mysql.Aop.ParseExpression += (s, e) =>
|
||||||
@ -1225,9 +1225,9 @@ namespace FreeSql.Tests
|
|||||||
//);
|
//);
|
||||||
|
|
||||||
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
||||||
// .InnerJoin(a.TypeGuid == b.Guid)
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
||||||
// .LeftJoin(c.Id == b.ParentId)
|
// .LeftJoin(c.Id == b.ParentId)
|
||||||
// .Where(b.Name == "xxx"))
|
// .Where(b.Name == "xxx"))
|
||||||
//.Where(a => a.Id == 1).ToSql();
|
//.Where(a => a.Id == 1).ToSql();
|
||||||
|
|
||||||
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
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) });
|
fsqlWhere.Invoke(fsql, new object[] { Expression.Lambda(fsqlManyWhereExp, fsqlWhereParam) });
|
||||||
var sql2 = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString();
|
var sql2 = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString();
|
||||||
if (string.IsNullOrEmpty(sql2) == false)
|
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;
|
MethodInfo manySubSelectAggMethod = null;
|
||||||
switch (exp3.Method.Name) //https://github.com/dotnetcore/FreeSql/issues/362
|
switch (exp3.Method.Name) //https://github.com/dotnetcore/FreeSql/issues/362
|
||||||
{
|
{
|
||||||
@ -1031,12 +1031,12 @@ namespace FreeSql.Internal
|
|||||||
case "Any":
|
case "Any":
|
||||||
var sql = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString();
|
var sql = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString();
|
||||||
if (string.IsNullOrEmpty(sql) == false)
|
if (string.IsNullOrEmpty(sql) == false)
|
||||||
return $"exists({sql.Replace("\r\n", "\r\n\t")})";
|
return $"exists({sql.Replace(" \r\n", " \r\n ")})";
|
||||||
break;
|
break;
|
||||||
case "Count":
|
case "Count":
|
||||||
var sqlCount = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "count(1)" })?.ToString();
|
var sqlCount = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "count(1)" })?.ToString();
|
||||||
if (string.IsNullOrEmpty(sqlCount) == false)
|
if (string.IsNullOrEmpty(sqlCount) == false)
|
||||||
return $"({sqlCount.Replace("\r\n", "\r\n\t")})";
|
return $"({sqlCount.Replace(" \r\n", " \r\n ")})";
|
||||||
break;
|
break;
|
||||||
case "Sum":
|
case "Sum":
|
||||||
case "Min":
|
case "Min":
|
||||||
@ -1047,7 +1047,7 @@ namespace FreeSql.Internal
|
|||||||
tscClone1._tables = fsqltables;
|
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();
|
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)
|
if (string.IsNullOrEmpty(sqlSum) == false)
|
||||||
return $"({sqlSum.Replace("\r\n", "\r\n\t")})";
|
return $"({sqlSum.Replace(" \r\n", " \r\n ")})";
|
||||||
break;
|
break;
|
||||||
case "ToList":
|
case "ToList":
|
||||||
case "ToOne":
|
case "ToOne":
|
||||||
@ -1057,7 +1057,7 @@ namespace FreeSql.Internal
|
|||||||
tscClone2._tables = fsqltables;
|
tscClone2._tables = fsqltables;
|
||||||
var sqlFirst = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { ExpressionLambdaToSql(exp3.Arguments.FirstOrDefault(), tscClone2) })?.ToString();
|
var sqlFirst = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { ExpressionLambdaToSql(exp3.Arguments.FirstOrDefault(), tscClone2) })?.ToString();
|
||||||
if (string.IsNullOrEmpty(sqlFirst) == false)
|
if (string.IsNullOrEmpty(sqlFirst) == false)
|
||||||
return $"({sqlFirst.Replace("\r\n", "\r\n\t")})";
|
return $"({sqlFirst.Replace(" \r\n", " \r\n ")})";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -990,7 +990,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
if (_orm.CodeFirst.IsAutoSyncStructure) _orm.CodeFirst.SyncStructure(tb.Table.Type, name);
|
if (_orm.CodeFirst.IsAutoSyncStructure) _orm.CodeFirst.SyncStructure(tb.Table.Type, name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
name = name.Replace("\r\n", "\r\n ");
|
name = name.Replace(" \r\n", " \r\n ");
|
||||||
}
|
}
|
||||||
dict.Add(tb.Table.Type, name);
|
dict.Add(tb.Table.Type, name);
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Dameng.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ namespace FreeSql.MsAccess.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace FreeSql.MySql.Curd
|
|||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
.DisableGlobalFilter()
|
.DisableGlobalFilter()
|
||||||
.WhereDynamic(rowd)
|
.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;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.MySql.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Odbc.Default
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Odbc.KingbaseES
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ namespace FreeSql.Odbc.MySql
|
|||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
.DisableGlobalFilter()
|
.DisableGlobalFilter()
|
||||||
.WhereDynamic(rowd)
|
.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;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Odbc.MySql
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Odbc.PostgreSQL
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Oracle.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.PostgreSQL.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.ShenTong.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ namespace FreeSql.Sqlite.Curd
|
|||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
.DisableGlobalFilter()
|
.DisableGlobalFilter()
|
||||||
.WhereDynamic(rowd)
|
.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;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
@ -25,7 +25,7 @@ namespace FreeSql.Sqlite.Curd
|
|||||||
var tbUnionsGt0 = tbUnions.Count > 1;
|
var tbUnionsGt0 = tbUnions.Count > 1;
|
||||||
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
|
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 (");
|
if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
|
||||||
var tbUnion = tbUnions[tbUnionsIdx];
|
var tbUnion = tbUnions[tbUnionsIdx];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user