mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-22 12:09:29 +08:00
Update demo
This commit is contained in:
52
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/Main.cs
Normal file
52
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/Main.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static SqlSugarClient Db=> new SqlSugarClient(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true,
|
||||
AopEvents = new AopEvents
|
||||
{
|
||||
OnLogExecuting = (sql, p) =>
|
||||
{
|
||||
Console.WriteLine(sql);
|
||||
Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
public static void RestData()
|
||||
{
|
||||
Db.DbMaintenance.TruncateTable<Order>();
|
||||
Db.DbMaintenance.TruncateTable<OrderItem>();
|
||||
}
|
||||
public static void Init()
|
||||
{
|
||||
UnitAddRemark.Init();
|
||||
UnitSplitTask.Init();
|
||||
UnitBulkMerge.Init();
|
||||
UnitUpdateNavOneToOneFalse.Init();
|
||||
UnitCreateType.Init();
|
||||
UnitSubToList.Init();
|
||||
Bulk();
|
||||
CodeFirst();
|
||||
Updateable();
|
||||
Json();
|
||||
Ado();
|
||||
Queryable();
|
||||
QueryableAsync();
|
||||
Thread();
|
||||
Thread2();
|
||||
Thread3();
|
||||
}
|
||||
}
|
||||
}
|
57
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UAdo.cs
Normal file
57
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UAdo.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void Ado()
|
||||
{
|
||||
|
||||
var task1 = Db.Ado.GetScalarAsync("select 1");
|
||||
task1.Wait();
|
||||
UValidate.Check(1, task1.Result, "ado");
|
||||
|
||||
var task2 = Db.Ado.GetIntAsync("select 2");
|
||||
task2.Wait();
|
||||
UValidate.Check(2, task2.Result, "ado");
|
||||
|
||||
|
||||
var task3 = Db.Ado.GetLongAsync("select 3");
|
||||
task3.Wait();
|
||||
UValidate.Check(3, task3.Result, "ado");
|
||||
|
||||
|
||||
var task4 = Db.Ado.GetDataTableAsync("select 4 as id");
|
||||
task4.Wait();
|
||||
UValidate.Check(4, task4.Result.Rows[0]["id"], "ado");
|
||||
|
||||
|
||||
var task5 = Db.Ado.GetInt("select @id as id",new { id=5});
|
||||
UValidate.Check(5, task5, "ado");
|
||||
|
||||
|
||||
|
||||
var task6 = Db.Ado.SqlQuery<dynamic>("select @id as id", new { id = 5 });
|
||||
UValidate.Check(5, task6[0].id, "ado");
|
||||
|
||||
|
||||
var task7 = Db.Ado.SqlQueryAsync<dynamic>("select @id as id", new { id = 7 });
|
||||
task7.Wait();
|
||||
UValidate.Check(7, task7.Result[0].id, "ado");
|
||||
|
||||
|
||||
var task8 = Db.Ado.SqlQueryAsync<dynamic>("select 8 as id");
|
||||
task8.Wait();
|
||||
UValidate.Check(8, task8.Result[0].id, "ado");
|
||||
|
||||
var task9=Db.Ado.SqlQuery<Order, OrderItem>("select * from `Order`;select * from OrderDetail");
|
||||
|
||||
var task10 = Db.Ado.SqlQueryAsync<Order, OrderItem>("select * from `Order`;select * from OrderDetail");
|
||||
task10.Wait();
|
||||
}
|
||||
}
|
||||
}
|
245
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UBulkCopy.cs
Normal file
245
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UBulkCopy.cs
Normal file
@@ -0,0 +1,245 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void Bulk()
|
||||
{
|
||||
Db.CodeFirst.InitTables<UnitIdentity1>();
|
||||
Db.DbMaintenance.TruncateTable<UnitIdentity1>();
|
||||
var data = new UnitIdentity1()
|
||||
{
|
||||
Name = "jack"
|
||||
};
|
||||
Db.Fastest<UnitIdentity1>().BulkCopy(new List<UnitIdentity1>() {
|
||||
data
|
||||
});
|
||||
var list=Db.Queryable<UnitIdentity1>().ToList();
|
||||
if (list.Count != 1 || data.Name != list.First().Name)
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
data.Name = "2";
|
||||
Db.Fastest<UnitIdentity1>().BulkCopy(new List<UnitIdentity1>() {
|
||||
data,
|
||||
data
|
||||
});
|
||||
list = Db.Queryable<UnitIdentity1>().ToList();
|
||||
if (list.Count != 3 || !list.Any(it=>it.Name=="2"))
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
Db.Fastest<UnitIdentity1>().BulkUpdate(new List<UnitIdentity1>() {
|
||||
new UnitIdentity1(){
|
||||
Id=1,
|
||||
Name="222"
|
||||
},
|
||||
new UnitIdentity1(){
|
||||
Id=2,
|
||||
Name="111"
|
||||
}
|
||||
});
|
||||
list = Db.Queryable<UnitIdentity1>().ToList();
|
||||
if (list.First(it=>it.Id==1).Name!="222")
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
if (list.First(it => it.Id == 2).Name != "111")
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
if (list.First(it => it.Id == 3).Name != "2")
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
Db.CodeFirst.InitTables<UnitIdentity111>();
|
||||
Db.DbMaintenance.TruncateTable<UnitIdentity111>();
|
||||
var count = Db.Fastest<UnitIdentity111111111>().AS("UnitIdentity111").BulkCopy(new List<UnitIdentity111111111> {
|
||||
new UnitIdentity111111111(){ Id=1, Name="jack" }
|
||||
});
|
||||
if (count == 0)
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
count = Db.Fastest<UnitIdentity111111111>().AS("UnitIdentity111").BulkUpdate(new List<UnitIdentity111111111> {
|
||||
new UnitIdentity111111111(){ Id=1, Name="jack" }
|
||||
});
|
||||
if (count == 0)
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
Db.CodeFirst.InitTables<UnitTable001>();
|
||||
Db.Fastest<UnitTable001>().BulkUpdate(new List<UnitTable001> {
|
||||
new UnitTable001(){ Id=1, table="a" }
|
||||
});
|
||||
|
||||
Db.CodeFirst.InitTables<UnitBulk23131>();
|
||||
Db.DbMaintenance.TruncateTable<UnitBulk23131>();
|
||||
Db.Fastest<UnitBulk23131>().BulkCopy(new List<UnitBulk23131> {
|
||||
new UnitBulk23131()
|
||||
{
|
||||
Id = 1,
|
||||
table = false
|
||||
}
|
||||
});
|
||||
var list1 = Db.Queryable<UnitBulk23131>().ToList();
|
||||
SqlSugar.Check.Exception(list1.First().table==true, "unit error");
|
||||
Db.Fastest<UnitBulk23131>().BulkUpdate(new List<UnitBulk23131> {
|
||||
new UnitBulk23131()
|
||||
{
|
||||
Id = 1,
|
||||
table = true
|
||||
}
|
||||
});
|
||||
var list2=Db.Queryable<UnitBulk23131>().ToList();
|
||||
SqlSugar.Check.Exception(list2.First().table==false, "unit error");
|
||||
|
||||
Db.DbMaintenance.TruncateTable<UnitBulk23131>();
|
||||
Db.Fastest<UnitBulk23131>().BulkCopy(new List<UnitBulk23131> {
|
||||
new UnitBulk23131()
|
||||
{
|
||||
Id = 1,
|
||||
table = true
|
||||
}
|
||||
});
|
||||
var list3 = Db.Queryable<UnitBulk23131>().ToList();
|
||||
SqlSugar.Check.Exception(list3.First().table == false, "unit error");
|
||||
Db.Fastest<UnitBulk23131>().BulkUpdate(new List<UnitBulk23131> {
|
||||
new UnitBulk23131()
|
||||
{
|
||||
Id = 1,
|
||||
table = false
|
||||
}
|
||||
});
|
||||
list3 = Db.Queryable<UnitBulk23131>().ToList();
|
||||
SqlSugar.Check.Exception(list3.First().table == true, "unit error");
|
||||
|
||||
Db.DbMaintenance.TruncateTable<UnitBulk23131>();
|
||||
Db.Fastest<UnitBulk23131>().BulkCopy(new List<UnitBulk23131> {
|
||||
new UnitBulk23131()
|
||||
{
|
||||
Id = 1,
|
||||
table = null
|
||||
}
|
||||
});
|
||||
var list4 = Db.Queryable<UnitBulk23131>().ToList();
|
||||
SqlSugar.Check.Exception(list4.First().table==true, "unit error");
|
||||
|
||||
Db.CodeFirst.InitTables<unitBools>();
|
||||
Db.DbMaintenance.TruncateTable<unitBools>();
|
||||
Db.Fastest<unitBools>().BulkCopy(new List<unitBools>() {
|
||||
new unitBools()
|
||||
{
|
||||
false1 = true,
|
||||
null1 = true,
|
||||
true1 = true,
|
||||
id = 1
|
||||
}});
|
||||
var data2xxx = Db.Queryable<unitBools>().First();
|
||||
var data2 = Db.Queryable<unitBools>().First();
|
||||
if (data2.null1 != true || data2.true1 != true|| data2.false1 != true)
|
||||
{
|
||||
throw new Exception("uint error");
|
||||
}
|
||||
Db.Fastest<unitBools>().BulkUpdate(new List<unitBools>() {
|
||||
new unitBools()
|
||||
{
|
||||
false1 = false,
|
||||
null1 = null,
|
||||
true1 = true,
|
||||
id = 1
|
||||
}});
|
||||
data2 = Db.Queryable<unitBools>() .First();
|
||||
if (data2.false1 != false||data2.true1!=true||data2.null1!=null)
|
||||
{
|
||||
throw new Exception("uint error");
|
||||
}
|
||||
Db.CodeFirst.InitTables<unitBools2>();
|
||||
Db.DbMaintenance.TruncateTable<unitBools2>();
|
||||
Db.Fastest<unitBools2>().BulkCopy(new List<unitBools2>() {
|
||||
new unitBools2()
|
||||
{
|
||||
false1 = false,
|
||||
null1 = null,
|
||||
true1 = true,
|
||||
id = 1
|
||||
}});
|
||||
var data3= Db.Queryable<unitBools2>().First();
|
||||
if (data3.false1 != null || data2.true1 != true || data2.null1 != null)
|
||||
{
|
||||
throw new Exception("uint error");
|
||||
}
|
||||
Db.CodeFirst.InitTables<unitBytedfa>();
|
||||
|
||||
Db.Fastest<unitBytedfa>().BulkCopy(new List<unitBytedfa>() {
|
||||
new unitBytedfa(){ aaa=new byte[]{ 1,2,3,4,3,1} }
|
||||
});
|
||||
var data4=Db.Queryable<unitBytedfa>().First();
|
||||
if (string.Join("", data4.aaa) != "123431")
|
||||
{
|
||||
throw new Exception("uint error");
|
||||
}
|
||||
}
|
||||
}
|
||||
public class unitBytedfa
|
||||
{
|
||||
public byte[] aaa { get; set; }
|
||||
}
|
||||
public class unitBools2
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int id { get; set; }
|
||||
[SqlSugar.SugarColumn(IsNullable = true, ColumnDataType="bit")]
|
||||
public bool? false1 { get; set; }
|
||||
[SqlSugar.SugarColumn(IsNullable = true, ColumnDataType = "bit")]
|
||||
public bool? true1 { get; set; }
|
||||
[SqlSugar.SugarColumn(IsNullable = true, ColumnDataType = "bit")]
|
||||
public bool? null1 { get; set; }
|
||||
}
|
||||
public class unitBools
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey =true)]
|
||||
public int id { get; set; }
|
||||
[SqlSugar.SugarColumn(IsNullable = true,ColumnDataType = "tinyint", Length = 1)]
|
||||
public bool? false1 { get; set; }
|
||||
[SqlSugar.SugarColumn(IsNullable = true, ColumnDataType = "tinyint", Length = 1)]
|
||||
public bool? true1 { get; set; }
|
||||
[SqlSugar.SugarColumn(IsNullable = true, ColumnDataType = "tinyint", Length = 1)]
|
||||
public bool? null1 { get; set; }
|
||||
}
|
||||
public class UnitBulk23131
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
[SqlSugar.SugarColumn(ColumnDataType ="tinyint",Length =1,IsNullable =true)]
|
||||
public bool? table { get; set; }
|
||||
}
|
||||
public class UnitTable001
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
public string table { get; set; }
|
||||
}
|
||||
|
||||
public class UnitIdentity111
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class UnitIdentity111111111
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class UnitIdentity1
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey =true,IsIdentity =true)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
680
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UBulkCopy2.cs
Normal file
680
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UBulkCopy2.cs
Normal file
@@ -0,0 +1,680 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Principal;
|
||||
using System.Text;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
internal class UBulkCopy2
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<tdetonator>();
|
||||
List<tdetonator> list = new List<tdetonator>();
|
||||
|
||||
int num = 0;
|
||||
|
||||
int index = 1000000;
|
||||
db.DbMaintenance.TruncateTable<tdetonator>();
|
||||
for (int x = 0; x < 1; x++)
|
||||
|
||||
{
|
||||
|
||||
for (int i = 0; i < 1000000; i++)
|
||||
|
||||
{
|
||||
|
||||
index++;
|
||||
|
||||
tdetonator tdetonator = new tdetonator();
|
||||
|
||||
tdetonator.TClientTask_Id = new Guid("000c1c96-065d-11ee-b3b8-6c3c8c6a4066");
|
||||
|
||||
//tdetonator.Id = NewId.Next().ToGuid();
|
||||
|
||||
tdetonator.Id = SnowFlakeSingle.Instance.NextId();
|
||||
|
||||
tdetonator.Uid = "00000000000011" + index;
|
||||
|
||||
tdetonator.Gsm = "0000000000011";
|
||||
|
||||
tdetonator.ProductionTime = DateTime.Now;
|
||||
|
||||
tdetonator.ClientId = 0;
|
||||
|
||||
tdetonator.Password1 = "000000";
|
||||
|
||||
tdetonator.Password2 = "000000";
|
||||
|
||||
tdetonator.Password3 = "000000";
|
||||
|
||||
tdetonator.DefaultDelay = 99;
|
||||
|
||||
tdetonator.DefaultHolgTag = 0;
|
||||
|
||||
tdetonator.CStatus = true;
|
||||
|
||||
tdetonator.PStatus = true;
|
||||
|
||||
tdetonator.TStatus = true;
|
||||
|
||||
tdetonator.Key1Value = 55;
|
||||
|
||||
tdetonator.Key2Value = 55;
|
||||
|
||||
tdetonator.Key3Value = 55;
|
||||
|
||||
tdetonator.Key4Value = 55;
|
||||
|
||||
tdetonator.Key5Value = 55;
|
||||
|
||||
tdetonator.Key6Value = 55;
|
||||
|
||||
tdetonator.Key7Value = 55;
|
||||
|
||||
tdetonator.Key8Value = 55;
|
||||
|
||||
tdetonator.Key9Value = 55;
|
||||
|
||||
tdetonator.Key10Value = 55;
|
||||
|
||||
tdetonator.Key11Value = 55;
|
||||
|
||||
tdetonator.Key12Value = 55;
|
||||
|
||||
tdetonator.Key13Value = 55;
|
||||
|
||||
tdetonator.Key14Value = 55;
|
||||
|
||||
tdetonator.Key15Value = 55;
|
||||
|
||||
tdetonator.Key16Value = 55;
|
||||
|
||||
tdetonator.Key17Value = 55;
|
||||
|
||||
tdetonator.Key18Value = 55;
|
||||
|
||||
tdetonator.Key19Value = 55;
|
||||
|
||||
tdetonator.Key20Value = 55;
|
||||
|
||||
tdetonator.Key21Value = 55;
|
||||
|
||||
tdetonator.Key22Value = 55;
|
||||
|
||||
tdetonator.Key23Value = 55;
|
||||
|
||||
tdetonator.Key24Value = 55;
|
||||
|
||||
tdetonator.ErrorCode = 1;
|
||||
|
||||
tdetonator.ErrorMessage = "正常";
|
||||
|
||||
tdetonator.Synchronization = false;
|
||||
|
||||
tdetonator.RowStatus = 0;
|
||||
|
||||
tdetonator.JobNumber = 0;
|
||||
|
||||
tdetonator.OldFid = "00000000";
|
||||
|
||||
tdetonator.OldUid = "00000000";
|
||||
|
||||
tdetonator.OldDefaultDelay = 0;
|
||||
|
||||
tdetonator.OldDefaultHolgTag = 0;
|
||||
|
||||
tdetonator.NewFid = "00000000";
|
||||
|
||||
list.Add(tdetonator);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
db.Fastest<tdetonator>().PageSize(100000).BulkCopy(list);
|
||||
}
|
||||
public class tdetonator
|
||||
|
||||
{
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
|
||||
public long Id { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string Uid { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public DateTime ProductionTime { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string Password1 { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string Password2 { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string Password3 { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int DefaultDelay { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int DefaultHolgTag { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public bool? CStatus { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public bool? PStatus { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public bool? TStatus { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key1Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key2Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key3Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key4Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key5Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key6Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key7Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key8Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key9Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key10Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key11Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key12Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key13Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key14Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key15Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key16Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int ErrorCode { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string ErrorMessage { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public bool Synchronization { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public Guid? TUser_Id { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public Guid? TClientTask_Id { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int ClientId { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public DateTime? SyncTime { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key17Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key18Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key19Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key20Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key21Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key22Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key23Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int Key24Value { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int RowStatus { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string BatchCode { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public bool Complement { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string Gsm { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string RowStatusRemark { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int JobNumber { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string OldUid { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int OldDefaultDelay { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public int OldDefaultHolgTag { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string OldFid { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
///
|
||||
|
||||
/// </summary>
|
||||
|
||||
public string NewFid { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SqlSugar;
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void CodeFirst()
|
||||
{
|
||||
if (Db.DbMaintenance.IsAnyTable("UnitCodeTest1", false))
|
||||
Db.DbMaintenance.DropTable("UnitCodeTest1");
|
||||
Db.CodeFirst.InitTables<UnitCodeTest1>();
|
||||
Db.CodeFirst.InitTables<UnitCodeTest111>();
|
||||
Db.CodeFirst.InitTables<UnitIndextest>();
|
||||
|
||||
|
||||
Db.CodeFirst.InitTables(typeof(TestListJson));
|
||||
Db.DbMaintenance.TruncateTable<TestListJson>();
|
||||
Db.Insertable(new TestListJson { Id = 123, NameList = new List<string> { "123abc" } }).ExecuteCommand();
|
||||
var xxx = Db.Queryable<TestListJson>().Where(x => x.Id == 123).Select(x => new TestListJson
|
||||
{
|
||||
Id = x.Id,
|
||||
NameList = x.NameList }).First();
|
||||
if (xxx.NameList == null)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
Db.CodeFirst.InitTables<Testlong2>();
|
||||
Db.DbMaintenance.TruncateTable<Testlong2>();
|
||||
Db.Insertable<Testlong2>(new Testlong2() { Id= 1 }).ExecuteReturnEntityAsync().GetAwaiter().GetResult();
|
||||
if (Db.Queryable<Testlong2>().Any(x => x.Id == 1) == false) throw new Exception("unit error");
|
||||
}
|
||||
|
||||
[SugarTable("Testlong2")]
|
||||
public class Testlong2
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public long Id { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
[SugarTable("testjson")]
|
||||
public class TestListJson
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "name_list", IsJson = true, ColumnDataType = "json")]
|
||||
public List<string> NameList { get; set; }
|
||||
}
|
||||
[SqlSugar.SugarIndex("UnitIndextestIndex", nameof(UnitIndextest.Table), SqlSugar.OrderByType.Asc)]
|
||||
public class UnitIndextest
|
||||
{
|
||||
public string Table { get; set; }
|
||||
public string Id { get; set; }
|
||||
}
|
||||
public class UnitCodeTest1
|
||||
{
|
||||
[SqlSugar.SugarColumn(IndexGroupNameList = new string[] { "group1" })]
|
||||
public int Id { get; set; }
|
||||
[SqlSugar.SugarColumn(DefaultValue="now()", IndexGroupNameList =new string[] {"group1" } )]
|
||||
public DateTime? CreateDate { get; set; }
|
||||
}
|
||||
[SqlSugar.SugarIndex("UCTINDEX",
|
||||
nameof(UnitCodeTest111.CreateDate),SqlSugar.OrderByType.Desc,
|
||||
nameof(UnitCodeTest111.CreateDate2), SqlSugar.OrderByType.Desc,
|
||||
nameof(UnitCodeTest111.CreateDate3), SqlSugar.OrderByType.Desc
|
||||
)]
|
||||
public class UnitCodeTest111
|
||||
{
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
public DateTime? CreateDate { get; set; }
|
||||
public DateTime? CreateDate2 { get; set; }
|
||||
public DateTime? CreateDate3 { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
39
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UJson.cs
Normal file
39
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UJson.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
|
||||
public static void Json()
|
||||
{
|
||||
Db.CodeFirst.InitTables<UnitJsonTest>();
|
||||
Db.DbMaintenance.TruncateTable<UnitJsonTest>();
|
||||
Db.Insertable(new UnitJsonTest() { Order = new Order { Id = 1, Name = "order1" } }).ExecuteCommand();
|
||||
var list = Db.Queryable<UnitJsonTest>().ToList();
|
||||
UValidate.Check("order1", list.First().Order.Name, "Json");
|
||||
Db.Updateable(new UnitJsonTest() { Id = 1, Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand();
|
||||
list = Db.Queryable<UnitJsonTest>().ToList();
|
||||
UValidate.Check("order2", list.First().Order.Name, "Json");
|
||||
|
||||
Db.Updateable<UnitJsonTest>().SetColumns(x => new UnitJsonTest { Order = new Order { Id = 2, Name = "order3" } }).Where(x => x.Id == 1).ExecuteCommand();
|
||||
list = Db.Queryable<UnitJsonTest>().ToList();
|
||||
UValidate.Check("order3", list.First().Order.Name, "Json");
|
||||
|
||||
var list2 = Db.Queryable<UnitJsonTest>().ToList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class UnitJsonTest
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
[SqlSugar.SugarColumn(ColumnDataType = "varchar(4000)", IsJson = true)]
|
||||
public Order Order { get; set; }
|
||||
}
|
||||
}
|
323
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UQueryable.cs
Normal file
323
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UQueryable.cs
Normal file
@@ -0,0 +1,323 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void Queryable()
|
||||
{
|
||||
|
||||
var pageindex = 1;
|
||||
var pagesize = 10;
|
||||
var total = 0;
|
||||
var totalPage = 0;
|
||||
var list = Db.Queryable<Order>().ToPageList(pageindex, pagesize, ref total, ref totalPage);
|
||||
|
||||
//Db.CodeFirst.InitTables(typeof(CarType));
|
||||
//Db.Updateable<CarType>()
|
||||
// .SetColumns(it => new CarType { State = SqlSugar.SqlFunc.IIF(it.State == true, false, true) }).Where(it => true)
|
||||
// .ExecuteCommand();
|
||||
|
||||
//Db.CodeFirst.InitTables(typeof(TestTree));
|
||||
//Db.DbMaintenance.TruncateTable<TestTree>();
|
||||
//Db.Ado.ExecuteCommand("insert testtree values(hierarchyid::GetRoot(),geography :: STGeomFromText ('POINT(55.9271035250276 -3.29431266523898)',4326),'name')");
|
||||
//var list2 = Db.Queryable<TestTree>().ToList();
|
||||
|
||||
Db.CodeFirst.InitTables<UnitGuidTable>();
|
||||
Db.Queryable<UnitGuidTable>().Where(it => it.Id.HasValue).ToList();
|
||||
|
||||
Db.Queryable<Order>().Where(it => SqlSugar.SqlFunc.Equals(it.CreateTime.Date, it.CreateTime.Date)).ToList();
|
||||
|
||||
var sql = Db.Queryable<UnitSelectTest>().Select(it => new UnitSelectTest()
|
||||
{
|
||||
|
||||
DcNull = it.Dc,
|
||||
Dc = it.Int
|
||||
}).ToSql().Key;
|
||||
UValidate.Check(sql, "SELECT `Dc` AS `DcNull` , `Int` AS `Dc` FROM `UnitSelectTest`", "Queryable");
|
||||
|
||||
sql = Db.Updateable<UnitSelectTest2>(new UnitSelectTest2()).ToSql().Key;
|
||||
UValidate.Check(sql, @"UPDATE `UnitSelectTest2` SET
|
||||
`Dc`=@Dc,`IntNull`=@IntNull WHERE `Int`=@Int", "Queryable");
|
||||
|
||||
sql = Db.Queryable<Order>().IgnoreColumns(it => it.CreateTime).ToSql().Key;
|
||||
UValidate.Check(sql, "SELECT `Id`,`Name`,`Price`,`CustomId` FROM `Order` ", "Queryable");
|
||||
sql = Db.Queryable<Order>().IgnoreColumns(it => new { it.Id, it.Name }).ToSql().Key;
|
||||
UValidate.Check(sql, "SELECT `Price`,`CreateTime`,`CustomId` FROM `Order` ", "Queryable");
|
||||
sql = Db.Queryable<Order>().IgnoreColumns("id").ToSql().Key;
|
||||
UValidate.Check(sql, "SELECT `Name`,`Price`,`CreateTime`,`CustomId` FROM `Order` ", "Queryable");
|
||||
|
||||
var cts = IEnumerbleContains.Data();
|
||||
var list2=Db.Queryable<Order>()
|
||||
.Where(p => /*ids.*/cts.Select(c => c.Id).Contains(p.Id)).ToList();
|
||||
|
||||
var cts2 = IEnumerbleContains.Data().ToList(); ;
|
||||
var list3 = Db.Queryable<Order>()
|
||||
.Where(p => /*ids.*/cts2.Select(c => c.Id).Contains(p.Id)).ToList();
|
||||
|
||||
|
||||
var list4 = Db.Queryable<Order>()
|
||||
.Where(p => new List<int> { 1, 2, 3 }.Where(b => b > 1).Contains(p.Id)).ToList();
|
||||
|
||||
Db.CodeFirst.InitTables<UnitTest3>();
|
||||
var list5 = Db.Queryable<UnitTest3>().Where(it => SqlSugar.SqlFunc.ToString(it.Date.Value.Year) == "1").ToList();
|
||||
var list6 = Db.Queryable<UnitTest3>().Where(it => it.Date.Value.Year == 1).ToList();
|
||||
var list7 = Db.Queryable<UnitTest3>().Where(it => it.Date.Value.Date == DateTime.Now.Date).ToList();
|
||||
|
||||
|
||||
SaleOrder saleOrderInfo = new SaleOrder();
|
||||
Db.CodeFirst.InitTables<SaleOrder>();
|
||||
var result = Db.GetSimpleClient<SaleOrder>().Update(o => new SaleOrder()
|
||||
{
|
||||
OrderStatus = 1,
|
||||
CheckMan = saleOrderInfo.CheckMan,
|
||||
CheckTime = DateTime.Now
|
||||
}, o => o.OrderSn == saleOrderInfo.OrderSn && o.OrderStatus != 1);
|
||||
}
|
||||
|
||||
public static class IEnumerbleContains
|
||||
{
|
||||
public static IEnumerable<Order> Data()
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
yield return new Order
|
||||
{
|
||||
Id = i,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
[SugarTable("UnitSaleOrder")]
|
||||
public class SaleOrder
|
||||
{
|
||||
public SaleOrder()
|
||||
{
|
||||
SaleDate = DateTime.Now;
|
||||
Team = 1;
|
||||
AddTime = DateTime.Now;
|
||||
OrderStatus = 0;
|
||||
Points = 0;
|
||||
PayPoints = 0;
|
||||
PointsExchangeMoney = decimal.Zero;
|
||||
IsPushMessage = false;
|
||||
CostAmount = decimal.Zero;
|
||||
OrderAmount = decimal.Zero;
|
||||
RealOrderAmount = decimal.Zero;
|
||||
AccountsDueAmount = decimal.Zero;
|
||||
SettleType = 0;
|
||||
IsPushMessage = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 订单号
|
||||
/// </summary>
|
||||
public string OrderSn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户编号
|
||||
/// </summary>
|
||||
public string CustomerNo { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 收货人姓名
|
||||
/// </summary>
|
||||
public string CustomerName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成本总金额
|
||||
/// </summary>
|
||||
public decimal CostAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单总金额
|
||||
/// </summary>
|
||||
public decimal OrderAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实收金额(整单优惠后)
|
||||
/// </summary>
|
||||
public decimal RealOrderAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销货日期
|
||||
/// </summary>
|
||||
public DateTime SaleDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下单时间
|
||||
/// </summary>
|
||||
public DateTime AddTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 媒体资源投放ID
|
||||
/// </summary>
|
||||
public string IndustryCode { get; set; }
|
||||
|
||||
public string IndustryName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 班组
|
||||
/// </summary>
|
||||
public int Team { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售员编号
|
||||
/// </summary>
|
||||
public string SellerNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售员姓名
|
||||
/// </summary>
|
||||
public string SellerName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人ID
|
||||
/// </summary>
|
||||
public virtual string HandlerCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作者
|
||||
/// </summary>
|
||||
public string Handler { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发货仓库代号
|
||||
/// </summary>
|
||||
public string StoreCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发货仓库名称
|
||||
/// </summary>
|
||||
public string StoreName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销货店铺渠道代号
|
||||
/// </summary>
|
||||
public string ShopChannelCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销货店铺渠道名称
|
||||
/// </summary>
|
||||
public string ShopChannelName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单产品数
|
||||
/// </summary>
|
||||
public int GoodsNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 礼品数量
|
||||
/// </summary>
|
||||
public int GiftNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 对应预订单号
|
||||
/// </summary>
|
||||
public string CustomerOrderSn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单赠送积分
|
||||
/// </summary>
|
||||
public int Points { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 应收款金额
|
||||
/// </summary>
|
||||
public decimal AccountsDueAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 来自预约单号
|
||||
/// </summary>
|
||||
public string ReserationOrderSn { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 订单状态 0为未审核 1为已审核
|
||||
/// </summary>
|
||||
public int OrderStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核人
|
||||
/// </summary>
|
||||
public string CheckMan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核时间
|
||||
/// </summary>
|
||||
public DateTime? CheckTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结算类型 0为非金工石(零售) 1为金工石
|
||||
/// </summary>
|
||||
public int SettleType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用积分
|
||||
/// </summary>
|
||||
public int PayPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 积分抵现金额
|
||||
/// </summary>
|
||||
public decimal PointsExchangeMoney { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已推送微信消息
|
||||
/// </summary>
|
||||
public bool IsPushMessage { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SaleOrderBaseInfo
|
||||
{
|
||||
public int GoodsNum { get; set; }
|
||||
|
||||
public int GiftNum { get; set; }
|
||||
|
||||
public decimal OrderAmount { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class UnitTest3
|
||||
{
|
||||
public DateTime? Date { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class UnitSelectTest2
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsOnlyIgnoreUpdate = true)]
|
||||
public decimal? DcNull { get; set; }
|
||||
public decimal Dc { get; set; }
|
||||
public int? IntNull { get; set; }
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public decimal Int { get; set; }
|
||||
}
|
||||
|
||||
public class UnitSelectTest
|
||||
{
|
||||
public decimal? DcNull { get; set; }
|
||||
public decimal Dc { get; set; }
|
||||
public int? IntNull { get; set; }
|
||||
public decimal Int { get; set; }
|
||||
}
|
||||
|
||||
public class UnitGuidTable
|
||||
{
|
||||
public Guid? Id { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SqlSugar;
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void QueryableAsync()
|
||||
{
|
||||
q1();
|
||||
q2();
|
||||
q3();
|
||||
}
|
||||
|
||||
private static void q1()
|
||||
{
|
||||
RefAsync<int> total = 0;
|
||||
var count = Db.Queryable<Order>().Count();
|
||||
Task t = Db.Queryable<Order>().ToPageListAsync(1, 2, total);
|
||||
t.Wait();
|
||||
UValidate.Check(count, total.Value, "QueryableAsync");
|
||||
}
|
||||
private static void q2()
|
||||
{
|
||||
RefAsync<int> total = 0;
|
||||
var count = Db.Queryable<Order>().Count();
|
||||
Task t = Db.Queryable<Order>().ToDataTablePageAsync(1, 2, total);
|
||||
t.Wait();
|
||||
UValidate.Check(count, total.Value, "QueryableAsync");
|
||||
}
|
||||
private static void q3()
|
||||
{
|
||||
RefAsync<int> total = 0;
|
||||
var count = Db.Queryable<Order>().Count();
|
||||
Task t = Db.Queryable<Order>().ToJsonPageAsync(1, 2, total);
|
||||
t.Wait();
|
||||
UValidate.Check(count, total.Value, "QueryableAsync");
|
||||
}
|
||||
}
|
||||
}
|
378
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UThread.cs
Normal file
378
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UThread.cs
Normal file
@@ -0,0 +1,378 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
|
||||
public static SqlSugarClient simpleDb => new SqlSugarClient(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true,
|
||||
AopEvents = new AopEvents
|
||||
{
|
||||
OnLogExecuting = (sql, p) =>
|
||||
{
|
||||
Console.WriteLine(sql);
|
||||
Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
|
||||
}
|
||||
}
|
||||
});
|
||||
public static SqlSugarScope ssDb => new SqlSugarScope(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true,
|
||||
//IsShardSameThread = true,
|
||||
AopEvents = new AopEvents
|
||||
{
|
||||
OnLogExecuting = (sql, p) =>
|
||||
{
|
||||
Console.WriteLine(sql);
|
||||
Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
|
||||
}
|
||||
}
|
||||
});
|
||||
public static SqlSugarScope singleDb = new SqlSugarScope(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true,
|
||||
AopEvents = new AopEvents
|
||||
{
|
||||
OnLogExecuting = (sql, p) =>
|
||||
{
|
||||
Console.WriteLine(sql);
|
||||
Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
|
||||
}
|
||||
}
|
||||
});
|
||||
public static SqlSugarScope singleAndSsDb = new SqlSugarScope(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true,
|
||||
//IsShardSameThread = true,
|
||||
AopEvents = new AopEvents
|
||||
{
|
||||
OnLogExecuting = (sql, p) =>
|
||||
{
|
||||
Console.WriteLine(sql);
|
||||
Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value)));
|
||||
}
|
||||
}
|
||||
});
|
||||
public static void Thread()
|
||||
{
|
||||
Simple();
|
||||
IsShardSameThread();
|
||||
Single();
|
||||
SingleAndIsShardSameThread();
|
||||
SimpleAsync();
|
||||
IsShardSameThreadAsync();
|
||||
SingleAsync();
|
||||
SingleAndIsShardSameThreadAsync();
|
||||
|
||||
}
|
||||
|
||||
private static void Simple()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void SingleAndIsShardSameThread()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleAndSsDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleAndSsDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleAndSsDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void Single()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void IsShardSameThread()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
Db.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
Db.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
Db.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static void SimpleAsync()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait(); ;
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void SingleAndIsShardSameThreadAsync()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleAndSsDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleAndSsDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleAndSsDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void SingleAsync()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleDb.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleDb.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
singleDb.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void IsShardSameThreadAsync()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
Db.Insertable(new Order() { Name = "test", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
Db.Insertable(new Order() { Name = "test2", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
Db.Insertable(new Order() { Name = "test3", CreateTime = DateTime.Now }).ExecuteCommandAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
}
|
||||
}
|
316
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UThread2.cs
Normal file
316
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UThread2.cs
Normal file
@@ -0,0 +1,316 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
|
||||
public static void Thread2()
|
||||
{
|
||||
Simple2();
|
||||
IsShardSameThread2();
|
||||
Single2();
|
||||
SingleAndIsShardSameThread2();
|
||||
SimpleAsync2();
|
||||
IsShardSameThreadAsync2();
|
||||
SingleAsync2();
|
||||
SingleAndIsShardSameThreadAsync2();
|
||||
|
||||
}
|
||||
|
||||
private static void Simple2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void SingleAndIsShardSameThread2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void Single2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void IsShardSameThread2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToList();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static void SimpleAsync2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait(); ;
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void SingleAndIsShardSameThreadAsync2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void SingleAsync2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
|
||||
private static void IsShardSameThreadAsync2()
|
||||
{
|
||||
var t1 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
});
|
||||
var t2 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(10);
|
||||
}
|
||||
|
||||
});
|
||||
var t3 = new Task(() =>
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
simpleDb.Queryable<Order>().Take(10).ToListAsync().Wait();
|
||||
System.Threading.Thread.Sleep(6);
|
||||
}
|
||||
|
||||
});
|
||||
t1.Start();
|
||||
t2.Start();
|
||||
t3.Start();
|
||||
|
||||
Task.WaitAll(t1, t2, t3);
|
||||
}
|
||||
}
|
||||
}
|
117
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UThread3.cs
Normal file
117
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UThread3.cs
Normal file
@@ -0,0 +1,117 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
|
||||
public static void Thread3()
|
||||
{
|
||||
Console.WriteLine("Thread3");
|
||||
SimpleAsync3().Wait();
|
||||
IsShardSameThreadAsync3().Wait();
|
||||
SingleAsync3().Wait();
|
||||
SingleAndIsShardSameThreadAsync3().Wait();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static async Task SimpleAsync3()
|
||||
{
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await simpleDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await simpleDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
List<Order> orders = new List<Order>();
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
orders = await simpleDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
if (orders.Count > 0)
|
||||
{
|
||||
Console.WriteLine("async is ok");
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task SingleAndIsShardSameThreadAsync3()
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await singleAndSsDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await singleAndSsDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
|
||||
}
|
||||
List<Order> orders = new List<Order>();
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
orders = await singleAndSsDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
if (orders.Count > 0)
|
||||
{
|
||||
Console.WriteLine("async is ok");
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task SingleAsync3()
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await singleDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await singleDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
List<Order> orders = new List<Order>();
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
orders = await singleDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
if (orders.Count > 0)
|
||||
{
|
||||
Console.WriteLine("async is ok");
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task IsShardSameThreadAsync3()
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await ssDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
await ssDb.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
List<Order> orders = new List<Order>();
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
orders = await ssDb.Queryable<Order>().Take(10).ToListAsync();
|
||||
}
|
||||
if (orders.Count > 0)
|
||||
{
|
||||
Console.WriteLine("async is ok");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
149
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UTran.cs
Normal file
149
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/UTran.cs
Normal file
@@ -0,0 +1,149 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public class UTran
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
AdoTran();
|
||||
Tran();
|
||||
RollTest().GetAwaiter().GetResult();
|
||||
Tran2();
|
||||
Console.ReadKey();
|
||||
}
|
||||
|
||||
private static void AdoTran()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<UTran121>();
|
||||
db.DbMaintenance.TruncateTable<UTran121>();
|
||||
db.Insertable(new UTran121()).ExecuteCommand();
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
AdoTest(i).GetAwaiter().GetResult();
|
||||
}
|
||||
var id = db.Queryable<UTran121>().ToList().First().ID;
|
||||
if (id != 2000)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static async Task AdoTest(int i)
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
await db.Ado.BeginTranAsync();
|
||||
|
||||
await db.Updateable<UTran121>()
|
||||
.SetColumns(it => it.ID == it.ID+1)
|
||||
.Where(it=>true)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
await db.Updateable<UTran121>()
|
||||
.SetColumns(it => it.ID == it.ID + 1)
|
||||
.Where(it => true)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
await db.Ado.CommitTranAsync();
|
||||
Console.WriteLine("ok"+i);
|
||||
}
|
||||
|
||||
|
||||
private static void Tran2()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<UTran121>();
|
||||
db.DbMaintenance.TruncateTable<UTran121>();
|
||||
db.Insertable(new UTran121()).ExecuteCommand();
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
Test(i);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static void Tran()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<UTran121>();
|
||||
db.DbMaintenance.TruncateTable<UTran121>();
|
||||
db.Insertable(new UTran121()).ExecuteCommand();
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
Test(i).GetAwaiter().GetResult();
|
||||
}
|
||||
var id = db.Queryable<UTran121>().ToList().First().ID;
|
||||
if (id != 2000)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task Test(int i)
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
await db.BeginTranAsync();
|
||||
|
||||
await db.Updateable<UTran121>()
|
||||
.SetColumns(it => it.ID == it.ID + 1)
|
||||
.Where(it => true)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
await db.Updateable<UTran121>()
|
||||
.SetColumns(it => it.ID == it.ID + 1)
|
||||
.Where(it => true)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
await db.CommitTranAsync();
|
||||
Console.WriteLine("ok" + i);
|
||||
}
|
||||
|
||||
public static async Task RollTest()
|
||||
{
|
||||
int i = 0;
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<UTran121>();
|
||||
db.DbMaintenance.TruncateTable<UTran121>();
|
||||
db.Insertable(new UTran121() { ID=100}).ExecuteCommand();
|
||||
|
||||
try
|
||||
{
|
||||
Console.WriteLine( db.Queryable<UTran121>().First().ID);
|
||||
|
||||
await db.BeginTranAsync();
|
||||
|
||||
await db.Updateable<UTran121>()
|
||||
.SetColumns(it => it.ID == it.ID + 1)
|
||||
.Where(it => true)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
Console.WriteLine(db.Queryable<UTran121>().First().ID);
|
||||
|
||||
throw new Exception("");
|
||||
|
||||
await db.CommitTranAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await db.RollbackTranAsync();
|
||||
if (db.Queryable<UTran121>().First().ID != 100)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
Console.WriteLine("ok" + i);
|
||||
}
|
||||
public class UTran121
|
||||
{
|
||||
public int ID { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public class UValidate
|
||||
{
|
||||
public static void Check(object a, object b, object name)
|
||||
{
|
||||
if (a?.ToString()?.Trim() != b?.ToString()?.Trim())
|
||||
{
|
||||
throw new Exception(name + " error");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,37 @@
|
||||
using OrmTest;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
internal class UnitAddRemark
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<UnitAddRemark2>();//添加表
|
||||
db.DbMaintenance.AddColumnRemark("id", "UnitAddRemark2", "AA");
|
||||
foreach (var item in db.DbMaintenance.GetColumnInfosByTableName("UnitAddRemark2",false))
|
||||
{
|
||||
Console.WriteLine($" {item.DbColumnName} {item.ColumnDescription} ");
|
||||
}
|
||||
db.DbMaintenance.AddColumnRemark("id", "UnitAddRemark2", "");
|
||||
foreach (var item in db.DbMaintenance.GetColumnInfosByTableName("UnitAddRemark2", false))
|
||||
{
|
||||
Console.WriteLine($" {item.DbColumnName} {item.ColumnDescription} ");
|
||||
}
|
||||
db.DbMaintenance.AddColumnRemark("id", "UnitAddRemark2", "AA");
|
||||
foreach (var item in db.DbMaintenance.GetColumnInfosByTableName("UnitAddRemark2", false))
|
||||
{
|
||||
Console.WriteLine($" {item.DbColumnName} {item.ColumnDescription} ");
|
||||
}
|
||||
db.DbMaintenance.DropTable<UnitAddRemark2>();//删除表
|
||||
}
|
||||
public class UnitAddRemark2
|
||||
{
|
||||
public int id { get; set; }
|
||||
public string name { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using OrmTest;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
internal class UnitBulkMerge
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
db.CodeFirst.InitTables<UnitaafdsTest>();
|
||||
db.DbMaintenance.TruncateTable<UnitaafdsTest>();
|
||||
var count = db.Fastest<UnitaafdsTest>()
|
||||
.BulkMerge(new List<UnitaafdsTest>() { new UnitaafdsTest() { Id=Guid.NewGuid()
|
||||
, CreateTime=DateTime.Now, Name="a"} });
|
||||
var list = db.Queryable<UnitaafdsTest>().ToList();
|
||||
if (list[0].Name != "a") { throw new Exception("unit error"); }
|
||||
list[0].Name = "j";
|
||||
var count2 = db.Fastest<UnitaafdsTest>()
|
||||
.BulkMerge(list);
|
||||
var list2 = db.Queryable<UnitaafdsTest>().ToList();
|
||||
if (list2[0].Name != "j" || count2 != 1) { throw new Exception("unit error"); }
|
||||
list2.Add(new UnitaafdsTest()
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
CreateTime = DateTime.Now,
|
||||
Name = "a"
|
||||
});
|
||||
list2.Add(new UnitaafdsTest()
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
CreateTime = DateTime.Now,
|
||||
Name = "a"
|
||||
});
|
||||
db.Fastest<UnitaafdsTest>()
|
||||
.BulkMerge(list2);
|
||||
var count3 = db.Queryable<UnitaafdsTest>()
|
||||
.Count();
|
||||
if (count3 != 3)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
db.Fastest<UnitaafdsTest>()
|
||||
.BulkMerge(list);
|
||||
}
|
||||
db.CodeFirst.InitTables<Unitfadfayy>();
|
||||
db.DbMaintenance.TruncateTable<Unitfadfayy>();
|
||||
List<Unitfadfayy> addItems = new List<Unitfadfayy>();
|
||||
addItems.Add(new Unitfadfayy() { CreateTime = DateTime.Now, Name = "a" });
|
||||
db.Fastest<Unitfadfayy>().BulkMerge(addItems);
|
||||
var list3=db.Queryable<Unitfadfayy>().ToList();
|
||||
list3.First().Name = "j";
|
||||
db.Fastest<Unitfadfayy>().BulkMerge(list3);
|
||||
var list4 = db.Queryable<Unitfadfayy>().ToList();
|
||||
}
|
||||
}
|
||||
public class Unitfadfayy
|
||||
{
|
||||
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true,IsIdentity =true)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
public class UnitaafdsTest
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public Guid Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,103 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public class UnitCreateType
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine("#### CreateType Start ####");
|
||||
|
||||
|
||||
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString3,
|
||||
InitKeyType = InitKeyType.Attribute,
|
||||
IsAutoCloseConnection = true
|
||||
}, db =>
|
||||
{
|
||||
//单例参数配置,所有上下文生效
|
||||
db.Aop.OnLogExecuting = (sql, pars) =>
|
||||
{
|
||||
|
||||
//Console.WriteLine(sql);//输出sql
|
||||
};
|
||||
});
|
||||
|
||||
List<Guid> ids = new List<Guid>();
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
var guids = db.Queryable<Order>().Select(it =>
|
||||
SqlFunc.NewUid()
|
||||
).Take(10).ToList(); ;
|
||||
ids.AddRange(guids);
|
||||
}
|
||||
var count= ids.Distinct().Count();
|
||||
if (count != ids.Count)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
db.DbMaintenance.CreateDatabase();
|
||||
var type = db.DynamicBuilder().CreateClass("UnitEntityA",
|
||||
new SugarTable()
|
||||
{
|
||||
TableDescription = "表备注",
|
||||
//DisabledUpdateAll=true 可以禁止更新只创建
|
||||
})
|
||||
|
||||
|
||||
.CreateProperty("name", Type.GetType("System.String"),
|
||||
new SugarColumn()
|
||||
{
|
||||
IsIgnore = false,
|
||||
IsPrimaryKey = false,
|
||||
IsIdentity = false,
|
||||
ColumnDescription = "",
|
||||
Length = 255,
|
||||
IsNullable = false,
|
||||
OldColumnName = null,
|
||||
ColumnDataType = "varchar",
|
||||
DecimalDigits = 0,
|
||||
OracleSequenceName = null,
|
||||
IsOnlyIgnoreInsert = false,
|
||||
IsOnlyIgnoreUpdate = false,
|
||||
IsJson = false,
|
||||
DefaultValue = "",
|
||||
IsArray = false,
|
||||
SqlParameterDbType = null,
|
||||
SqlParameterSize = null
|
||||
})
|
||||
.BuilderType();
|
||||
|
||||
if (db.DbMaintenance.IsAnyTable("UnitEntityA", false))
|
||||
{
|
||||
db.DbMaintenance.DropTable("UnitEntityA");
|
||||
}
|
||||
db.CodeFirst.InitTables(type);
|
||||
|
||||
|
||||
var type2 = db.DynamicBuilder().CreateClass("UnitEntityA",
|
||||
new SugarTable()
|
||||
{
|
||||
TableDescription = "表备注",
|
||||
//DisabledUpdateAll=true 可以禁止更新只创建
|
||||
})
|
||||
.CreateProperty("Id", typeof(string), new SugarColumn() { IsPrimaryKey = true, ColumnDescription = "列备注" }).BuilderType();
|
||||
|
||||
db.CodeFirst.InitTables(type2);
|
||||
|
||||
var data=db.DbMaintenance.GetColumnInfosByTableName("UnitEntityA",false);
|
||||
|
||||
if (data[0].IsPrimarykey == false) throw new Exception("unit error");
|
||||
|
||||
Console.WriteLine("#### DemoE_CreateType end ####");
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,47 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
internal class UnitSplitTask
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var client = NewUnitTest.Db;
|
||||
Console.WriteLine("Hello, World!");
|
||||
List<Task> tasks = new List<Task>()
|
||||
{
|
||||
CreateTask(client.CopyNew()),
|
||||
CreateTask(client.CopyNew()),
|
||||
CreateTask(client.CopyNew())
|
||||
};
|
||||
|
||||
Task.WhenAll(tasks).GetAwaiter().GetResult();
|
||||
var table = client.SplitHelper<SpitDemoModel>().GetTableName(SplitType.Day);
|
||||
client.DbMaintenance.DropTable(table);
|
||||
}
|
||||
|
||||
|
||||
private static Task CreateTask(ISqlSugarClient client)
|
||||
{
|
||||
return Task.Run(() => {
|
||||
client.Insertable(new SpitDemoModel()).SplitTable().ExecuteCommand();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
[SplitTable(SplitType.Day)]
|
||||
[SugarTable("SpitDemo_{year}{month}{day}")]
|
||||
public class SpitDemoModel
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
[SplitField]
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,350 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
namespace OrmTest
|
||||
{
|
||||
public class UnitSubToList
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
// db.Aop.OnLogExecuting = null;
|
||||
|
||||
db.CodeFirst.InitTables<Order, OrderItem, Custom>();
|
||||
db.DbMaintenance.DropTable<Order, OrderItem, Custom>();
|
||||
db.CodeFirst.InitTables<Order, OrderItem, Custom>();
|
||||
db.Insertable(new Order() { Id = 1, Name = "订单01", CustomId = 1, Price = 111, CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
db.Insertable(new Order() { Id = 1, Name = "订单011", CustomId = 1, Price = 1111, CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
db.Insertable(new Order() { Id = 1, Name = "订单033", CustomId = 3, Price = 31, CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
db.Insertable(new Order() { Id = 1, Name = "订单03", CustomId = 3, Price = 331, CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
db.Insertable(new Order() { Id = 1, Name = "订单04", CustomId = 4, Price = 411, CreateTime = DateTime.Now }).ExecuteCommand();
|
||||
|
||||
db.Insertable(new Custom() { Id = 1, Name = "客户1", }).ExecuteCommand();
|
||||
db.Insertable(new Custom() { Id = 3, Name = "客户3", }).ExecuteCommand();
|
||||
db.Insertable(new Custom() { Id = 4, Name = "客户4", }).ExecuteCommand();
|
||||
|
||||
db.Insertable(new OrderItem() { ItemId = 1, OrderId =1, Price=1 }).ExecuteCommand();
|
||||
db.Insertable(new OrderItem() { ItemId = 3, OrderId =3, Price=3}).ExecuteCommand();
|
||||
db.Insertable(new OrderItem() { ItemId = 4, OrderId=4 , Price=4}).ExecuteCommand();
|
||||
|
||||
TestGetAll(db);
|
||||
TestWhere(db);
|
||||
TestJoin(db);
|
||||
TestJoin2(db);
|
||||
TestJoin3(db);
|
||||
TestJoin4(db);
|
||||
}
|
||||
private static void TestJoin4(SqlSugarClient db)
|
||||
{
|
||||
var test1 = db.Queryable<Order>()
|
||||
.LeftJoin<Custom>((o, c) => c.Id == o.CustomId)
|
||||
.Select((o, c) => new myDTO5
|
||||
{
|
||||
OrderName = o.Name,
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(d => d.Name == c.Name).ToList()
|
||||
},
|
||||
true)
|
||||
.ToList();
|
||||
if (test1.Any(z => z.disCount.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
var test2= db.Queryable<Order>()
|
||||
.Select(o => new myDTO5
|
||||
{
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(d => d.Id == o.CustomId).ToList()
|
||||
},
|
||||
true)
|
||||
.ToList();
|
||||
if (test2.Any(z => z.disCount.Any(y => y.Id != z.CustomId))||test2.Any(z=>z.Id==0))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
private static void TestJoin3(SqlSugarClient db)
|
||||
{
|
||||
var test1 = db.Queryable<Order>()
|
||||
.LeftJoin<Custom>((o, c) => c.Id == o.CustomId)
|
||||
.Select((o, c) => new
|
||||
{
|
||||
CustomId = o.CustomId,
|
||||
OrderId = o.Id,
|
||||
OrderName = o.Name,
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(d => d.Name == c.Name).ToList()
|
||||
})
|
||||
.ToList();
|
||||
if (test1.Any(z => z.disCount.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
var test2 = db.Queryable<Custom>()
|
||||
.LeftJoin<Order>((o, c) => c.CustomId == o.Id)
|
||||
.Select((o, c) => new
|
||||
{
|
||||
Id=o.Id,
|
||||
cusName = o.Name,
|
||||
Orders = SqlFunc.Subqueryable<Order>().Where(d => d.CustomId == o.Id).ToList()
|
||||
})
|
||||
.ToList();
|
||||
if (test2.Any(z => z.Orders.Any(y => y.CustomId != z.Id))|| test2.First().Orders.Count()==0)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
private static void TestJoin2(SqlSugarClient db)
|
||||
{
|
||||
var test1 = db.Queryable<Order>()
|
||||
.LeftJoin<Custom>((o, c) => c.Id == o.CustomId)
|
||||
.LeftJoin<OrderItem>((o, c, i) => i.OrderId == o.Id)
|
||||
.Select((o, c, i) => new
|
||||
{
|
||||
itemId = i.ItemId,
|
||||
CustomId = o.CustomId,
|
||||
OrderId = o.Id,
|
||||
OrderName = o.Name,
|
||||
disCount = SqlFunc.Subqueryable<OrderItem>().Where(d => d.ItemId == i.ItemId).ToList()
|
||||
})
|
||||
.ToList();
|
||||
if (test1.Any(z => z.disCount.Any(y => y.ItemId != z.itemId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
var test2 = db.Queryable<Order>()
|
||||
.LeftJoin<Custom>((o, c) => c.Id == o.CustomId)
|
||||
.LeftJoin<OrderItem>((o, c, i) => i.OrderId == o.Id)
|
||||
.Select((o, c, i) => new
|
||||
{
|
||||
itemId = i.ItemId,
|
||||
CustomId = o.CustomId,
|
||||
CusName = SqlFunc.Subqueryable<Custom>().Where(s => s.Id == o.CustomId).Select(s => s.Name),
|
||||
OrderId = o.Id,
|
||||
cusList = SqlFunc.Subqueryable<Custom>().Where(d => d.Id == o.CustomId).ToList(),
|
||||
OrderName = o.Name,
|
||||
disCount = SqlFunc.Subqueryable<OrderItem>().Where(d => d.ItemId == i.ItemId).ToList()
|
||||
})
|
||||
.ToList();
|
||||
if (test2.Any(z => z.disCount.Any(y => y.ItemId != z.itemId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
if (test2.Any(z => z.disCount.Any(y => y.ItemId != z.itemId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
if (test2.Any(z => z.cusList.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
if (test2.Any(z => z.cusList.Any(y => y.Name != z.CusName)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
private static void TestJoin(SqlSugarClient db)
|
||||
{
|
||||
var test1 = db.Queryable<Order>()
|
||||
.LeftJoin<Custom>((o,c)=>c.Id==o.CustomId)
|
||||
.LeftJoin<OrderItem>((o, c, i) => i.OrderId==o.Id)
|
||||
.Select((o,c,i) => new myDTO4
|
||||
{
|
||||
itemId=i.ItemId,
|
||||
CustomId = o.CustomId,
|
||||
OrderId = o.Id,
|
||||
OrderName = o.Name,
|
||||
disCount = SqlFunc.Subqueryable<OrderItem>().Where(d => d.ItemId == i.ItemId).ToList()
|
||||
})
|
||||
.ToList();
|
||||
if (test1.Any(z => z.disCount.Any(y => y.ItemId != z.itemId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
var test2 = db.Queryable<Order>()
|
||||
.LeftJoin<Custom>((o, c) => c.Id == o.CustomId)
|
||||
.LeftJoin<OrderItem>((o, c, i) => i.OrderId == o.Id)
|
||||
.Select((o, c, i) => new myDTO4
|
||||
{
|
||||
itemId = i.ItemId,
|
||||
CustomId = o.CustomId,
|
||||
CusName=SqlFunc.Subqueryable<Custom>().Where(s=>s.Id==o.CustomId).Select(s=>s.Name),
|
||||
OrderId = o.Id,
|
||||
cusList= SqlFunc.Subqueryable<Custom>().Where(d => d.Id == o.CustomId).ToList(),
|
||||
OrderName = o.Name,
|
||||
disCount = SqlFunc.Subqueryable<OrderItem>().Where(d => d.ItemId == i.ItemId).ToList()
|
||||
})
|
||||
.ToList();
|
||||
if (test2.Any(z => z.disCount.Any(y => y.ItemId != z.itemId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
if (test2.Any(z => z.disCount.Any(y => y.ItemId != z.itemId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
if (test2.Any(z => z.cusList.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
if (test2.Any(z => z.cusList.Any(y => y.Name != z.CusName)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
private static void TestWhere(SqlSugarClient db)
|
||||
{
|
||||
var test1 = db.Queryable<Order>().Select(it => new myDTO3
|
||||
{
|
||||
CustomId = it.CustomId,
|
||||
OrderId=it.Id,
|
||||
OrderName=it.Name,
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(c=>c.Id==it.CustomId).ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
if (test1.Any(z => z.disCount.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
var test2 = db.Queryable<Order>().Select(it => new
|
||||
{
|
||||
CustomId = it.CustomId,
|
||||
OrderId = it.Id,
|
||||
OrderName = it.Name,
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(c => c.Id == it.CustomId).ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
|
||||
if (test2.Any(z => z.disCount.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
|
||||
var test3 = db.Queryable<Order>().Select(it => new myDTO3
|
||||
{
|
||||
CustomId = it.CustomId,
|
||||
OrderId = it.Id,
|
||||
OrderName = it.Name,
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(c => c.Id == it.CustomId).ToList()
|
||||
})
|
||||
.ToListAsync().GetAwaiter().GetResult();
|
||||
|
||||
if (test3.Any(z => z.disCount.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
var test4 = db.Queryable<Order>().Select(it => new
|
||||
{
|
||||
CustomId = it.CustomId,
|
||||
OrderId = it.Id,
|
||||
OrderName = it.Name,
|
||||
disCount = SqlFunc.Subqueryable<Custom>().Where(c => c.Id == it.CustomId).ToList()
|
||||
})
|
||||
.ToListAsync().GetAwaiter().GetResult();
|
||||
|
||||
if (test4.Any(z => z.disCount.Any(y => y.Id != z.CustomId)))
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
}
|
||||
private static void TestGetAll(SqlSugarClient db)
|
||||
{
|
||||
var test1 = db.Queryable<Order>().Select(it => new myDTO
|
||||
{
|
||||
Id = it.Id,
|
||||
disCount = SqlFunc.Subqueryable<Order>().ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
if (test1.First().disCount.Count != test1.Count)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
var test2 = db.Queryable<Order>().Select(it => new
|
||||
{
|
||||
Id = it.Id,
|
||||
disCount = SqlFunc.Subqueryable<Order>().ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
if (test2.First().disCount.Count != test2.Count)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
var test3 = db.Queryable<Order>().Select(it => new myDTO
|
||||
{
|
||||
Id = it.Id,
|
||||
disCount = SqlFunc.Subqueryable<Order>().ToList()
|
||||
})
|
||||
.ToListAsync().GetAwaiter().GetResult();
|
||||
|
||||
if (test3.First().disCount.Count != test3.Count)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
var test4 = db.Queryable<Order>().Select(it => new
|
||||
{
|
||||
Id = it.Id,
|
||||
disCount = SqlFunc.Subqueryable<Order>().ToList()
|
||||
})
|
||||
.ToListAsync().GetAwaiter().GetResult();
|
||||
|
||||
if (test4.First().disCount.Count != test4.Count)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
internal class myDTO
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public List<Order> disCount { get; set; }
|
||||
}
|
||||
internal class myDTO2
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public List<OrderItem> disCount { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
internal class myDTO5
|
||||
{
|
||||
public int CustomId { get; set; }
|
||||
public int OrderId { get; set; }
|
||||
public string OrderName { get; set; }
|
||||
public List<Custom> disCount { get; set; }
|
||||
public int Id { get; internal set; }
|
||||
}
|
||||
|
||||
internal class myDTO4
|
||||
{
|
||||
public int CustomId { get; set; }
|
||||
public int OrderId { get; set; }
|
||||
public string OrderName { get; set; }
|
||||
public List<OrderItem> disCount { get; set; }
|
||||
public int itemId { get; internal set; }
|
||||
public List<Custom> cusList { get; internal set; }
|
||||
public string CusName { get; internal set; }
|
||||
}
|
||||
|
||||
internal class myDTO3
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public List<Custom> disCount { get; set; }
|
||||
public int OrderId { get; internal set; }
|
||||
public string OrderName { get; internal set; }
|
||||
public int CustomId { get; internal set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,119 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text;
|
||||
using static OrmTest.NewUnitTest;
|
||||
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
internal class UnitUpdateNavOneToOneFalse
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
var Db = new SqlSugarScope(new ConnectionConfig()
|
||||
{
|
||||
DbType = DbType.MySql,
|
||||
ConnectionString = Config.ConnectionString,
|
||||
IsAutoCloseConnection = true
|
||||
}, db =>
|
||||
{
|
||||
db.Aop.OnLogExecuting = (sql, pars) =>
|
||||
{
|
||||
Console.Write(UtilMethods.GetSqlString(DbType.MySql, sql, pars));
|
||||
Console.WriteLine();
|
||||
Console.WriteLine();
|
||||
};
|
||||
});
|
||||
|
||||
Db.Ado.ExecuteCommand(@"
|
||||
DROP TABLE IF EXISTS `school0001`;
|
||||
CREATE TABLE `school0001` (
|
||||
`Id` bigint NOT NULL,
|
||||
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||
PRIMARY KEY(`Id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
INSERT INTO `school0001` VALUES(1001, '小学');
|
||||
|
||||
DROP TABLE IF EXISTS `student0001`;
|
||||
CREATE TABLE `student0001` (
|
||||
`Id` bigint NOT NULL,
|
||||
`SchoolId` bigint NOT NULL,
|
||||
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||||
`IsDeleted` bit(1) NOT NULL DEFAULT b'0',
|
||||
PRIMARY KEY(`Id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
INSERT INTO `student0001` VALUES(1, 1001, '软删除', b'1');
|
||||
INSERT INTO `student0001` VALUES(2, 1001, '真数据', b'0');");
|
||||
|
||||
//主表一条数据,子表两条数据(同一个SchoolId,其中一条IsDeleted = 1)
|
||||
|
||||
Db.QueryFilter.AddTableFilter<Student>(x => x.IsDeleted == false);
|
||||
|
||||
var entity = new School { Id = 1001, Name = "大学" };
|
||||
entity.StudentInfo = new Student { Id = 2, SchoolId = 1001, Name = "导航更新" };
|
||||
|
||||
try
|
||||
{
|
||||
Db.UpdateNav(entity, new UpdateNavRootOptions { IsInsertRoot = true })
|
||||
.Include(x => x.StudentInfo).ExecuteCommand();
|
||||
|
||||
var list=Db.Queryable<School>().Includes(X => X.StudentInfo).ToList();
|
||||
var student= Db.Queryable<Student>().ToList();
|
||||
if (student.Count != 1)
|
||||
{
|
||||
throw new Exception("unit error");
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
[SugarTable("school0001")]
|
||||
public class School
|
||||
{
|
||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]
|
||||
public long Id { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "Name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 从表
|
||||
/// </summary>
|
||||
[Navigate(NavigateType.OneToOne, nameof(Id), nameof(Student.SchoolId))]
|
||||
public Student StudentInfo { get; set; }
|
||||
}
|
||||
|
||||
[SugarTable("student0001")]
|
||||
public class Student
|
||||
{
|
||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]
|
||||
public long Id { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "SchoolId")]
|
||||
public long SchoolId { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "Name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[SugarColumn(ColumnName = "IsDeleted")]
|
||||
public bool IsDeleted { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
211
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/Updateable.cs
Normal file
211
Src/Asp.NetCore2/MySqlTest/UserTestCases/UnitTest/Updateable.cs
Normal file
@@ -0,0 +1,211 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void Updateable()
|
||||
{
|
||||
Db.CodeFirst.InitTables(typeof(UnitUser));
|
||||
Db.DbMaintenance.TruncateTable<UnitUser>();
|
||||
Db.Insertable(new UnitUser() { USER_ID=1,USER_ACCOUNT = "a", USER_PWD = "b", USER_NAME = "c", PWD_LASTCHTIME = DateTime.Now, PWD_ERRORCOUNT = 1, PWD_LASTERRTIME = DateTime.Now }).ExecuteCommand();
|
||||
Db.Updateable(new UnitUser() { USER_ID=1, PWD_LASTERRTIME = null }).WhereColumns(it=> new{ it.PWD_ERRORCOUNT, it.PWD_LASTERRTIME }).ExecuteCommand();
|
||||
Db.CodeFirst.InitTables(typeof(UnitBoolTest));
|
||||
var x = new UnitBoolTest();
|
||||
Db.Updateable<UnitBoolTest>().SetColumns(it => new UnitBoolTest() { BoolValue = !it.BoolValue }).Where(it=>it.Id==1).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>().SetColumns(it => it.BoolValue == !it.BoolValue ).Where(it=>it.Id==1).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>().SetColumns(it => new UnitBoolTest() { BoolValue = x.BoolValue }).Where(it => it.Id == 1).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>().SetColumns(it => it.BoolValue == x.BoolValue).Where(it => it.Id == 1).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>().SetColumns(it => new UnitBoolTest() { BoolValue = !x.BoolValue }).Where(it => it.Id == 1).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>().SetColumns(it => it.BoolValue == !x.BoolValue).Where(it => it.Id == 1).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>(x).ReSetValue(it => it.BoolValue = it.BoolValue).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>(x).ReSetValue(it => it.BoolValue = true).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>(x).ReSetValue(it => it.BoolValue = !it.BoolValue).ExecuteCommand();
|
||||
Db.Updateable<UnitBoolTest>(x).UpdateColumns(it =>new { it.BoolValue }) .ExecuteCommand();
|
||||
|
||||
|
||||
|
||||
UnitSaveDiary saveDiary = new UnitSaveDiary();
|
||||
saveDiary.ID = 2;
|
||||
saveDiary.TypeID = 10;
|
||||
saveDiary.TypeName = "类型100";
|
||||
saveDiary.Title = "标题1000";
|
||||
saveDiary.Content = "内容";
|
||||
saveDiary.Time = DateTime.Now;
|
||||
saveDiary.IsRemind = false;//无论传false/true 最终执行的结果都是以true执行的
|
||||
|
||||
var sql = Db.Updateable<UnitDiary>().SetColumns(it => new UnitDiary()
|
||||
{
|
||||
IsRemind = saveDiary.IsRemind,
|
||||
}).Where(it => it.ID == saveDiary.ID).ToSql();
|
||||
UValidate.Check(sql.Key.Replace(" ",""), @"UPDATE `Diary` SET
|
||||
`IsRemind` = @Const0 WHERE ( `ID` = @ID1 )".Replace(" ", ""), "Updateable");
|
||||
|
||||
|
||||
sql = Db.Updateable<UnitDiary>().SetColumns(it => new UnitDiary()
|
||||
{
|
||||
TypeID = saveDiary.TypeID,
|
||||
}).Where(it => it.ID == saveDiary.ID).ToSql();
|
||||
UValidate.Check(sql.Key.Replace(" ", ""), @"UPDATE `Diary` SET
|
||||
`TypeID` = @Const0 WHERE ( `ID` = @ID1 )".Replace(" ", ""), "Updateable");
|
||||
|
||||
}
|
||||
}
|
||||
public class UnitSaveDiary
|
||||
{
|
||||
public int ID { get; set; }
|
||||
public int TypeID { get; set; }
|
||||
public string TypeName { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Content { get; set; }
|
||||
public DateTime? Time { get; set; }
|
||||
public bool IsRemind { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 日记表
|
||||
/// </summary>
|
||||
[SugarTable("Diary")]
|
||||
public class UnitDiary
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int ID { get; set; }
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
public int? UserID { get; set; }
|
||||
/// <summary>
|
||||
/// 日记类型ID
|
||||
/// </summary>
|
||||
public int? TypeID { get; set; }
|
||||
/// <summary>
|
||||
/// 日记类型名称
|
||||
/// </summary>
|
||||
public string TypeName { get; set; }
|
||||
/// <summary>
|
||||
/// 标题
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
/// <summary>
|
||||
/// 内容
|
||||
/// </summary>
|
||||
public string Content { get; set; }
|
||||
/// <summary>
|
||||
/// 时间
|
||||
/// </summary>
|
||||
public DateTime? Time { get; set; }
|
||||
/// <summary>
|
||||
/// 是否提醒
|
||||
/// </summary>
|
||||
public bool? IsRemind { get; set; }
|
||||
/// <summary>
|
||||
/// 封面图
|
||||
/// </summary>
|
||||
public string Cover { get; set; }
|
||||
/// <summary>
|
||||
/// 是否为系统日记 1:系统日记 0:用户日记
|
||||
/// </summary>
|
||||
public bool? IsSystem { get; set; }
|
||||
/// <summary>
|
||||
/// 权重(排序)
|
||||
/// </summary>
|
||||
public int? Sequence { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string IP { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public bool? IsDelete { get; set; }
|
||||
}
|
||||
|
||||
public class UnitBoolTest
|
||||
{
|
||||
[SugarColumn(IsPrimaryKey =true)]
|
||||
public int Id { get; set; }
|
||||
public bool BoolValue { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 普通用户表
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class UnitUser
|
||||
{
|
||||
private System.Int64? _USER_ID;
|
||||
/// <summary>
|
||||
/// GUID主键
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
|
||||
public System.Int64? USER_ID { get { return this._USER_ID; } set { this._USER_ID = value; } }
|
||||
|
||||
private System.String _USER_ACCOUNT;
|
||||
/// <summary>
|
||||
/// 用户账号,不可重名,即使是假删除了,亦不可重复
|
||||
/// </summary>
|
||||
public System.String USER_ACCOUNT { get { return this._USER_ACCOUNT; } set { this._USER_ACCOUNT = value; } }
|
||||
|
||||
private System.String _USER_PWD;
|
||||
/// <summary>
|
||||
/// 用户密码
|
||||
/// </summary>
|
||||
public System.String USER_PWD
|
||||
{
|
||||
get { return this._USER_PWD; }
|
||||
set { this._USER_PWD = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 不允许用户密码序列化,可以反序列化
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool ShouldSerializeUSER_PWD()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
private System.String _USER_NAME;
|
||||
/// <summary>
|
||||
/// 用户姓名
|
||||
/// </summary>
|
||||
|
||||
public System.String USER_NAME { get { return this._USER_NAME; } set { this._USER_NAME = value; } }
|
||||
|
||||
private System.Int32 _USER_STATUS;
|
||||
/// <summary>
|
||||
/// 用户状体:10正常;20锁定;99已删除
|
||||
/// </summary>
|
||||
public System.Int32 USER_STATUS { get { return this._USER_STATUS; } set { this._USER_STATUS = value; } }
|
||||
|
||||
private System.DateTime _PWD_LASTCHTIME;
|
||||
/// <summary>
|
||||
/// 最后一次密码更新时间
|
||||
/// </summary>
|
||||
public System.DateTime PWD_LASTCHTIME { get { return this._PWD_LASTCHTIME; } set { this._PWD_LASTCHTIME = value; } }
|
||||
|
||||
private System.Int32? _PWD_ERRORCOUNT;
|
||||
/// <summary>
|
||||
/// 密码错误次数,达到定义的次数就锁定
|
||||
/// </summary>
|
||||
public System.Int32? PWD_ERRORCOUNT { get { return this._PWD_ERRORCOUNT; } set { this._PWD_ERRORCOUNT = value ?? 0; } }
|
||||
|
||||
private System.DateTime? _PWD_LASTERRTIME = null;
|
||||
/// <summary>
|
||||
/// 密码最后一次错误时间,满足定义的时间差之后,可自动解锁,如20分钟后自动解锁,亦作为累次错误次数的时间差比对基础
|
||||
/// 允许为空
|
||||
/// </summary>
|
||||
public System.DateTime? PWD_LASTERRTIME { get { return this._PWD_LASTERRTIME; } set { this._PWD_LASTERRTIME = value; } }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user