Update demo

This commit is contained in:
sunkaixuan 2022-07-30 14:58:21 +08:00
parent 879e9dcfcb
commit 7b49419f78
6 changed files with 49 additions and 169 deletions

View File

@ -71,13 +71,12 @@ namespace OrmTest
//db.DbMaintenance.CreateDatabase(); //db.DbMaintenance.CreateDatabase();
//Use db query //Use db query
var dt = db.Ado.SqlQuery<dynamic>("select 1"); var dt = db.Ado.SqlQuery<dynamic>("select @id",new { id=1});
//Create tables //Create tables
db.CodeFirst.InitTables(typeof(OrderItem),typeof(Order)); db.CodeFirst.InitTables(typeof(OrderItem),typeof(Order));
var xx=db.Insertable(new Order() { Name = "order1", CustomId = 1, Price = 0, CreateTime = DateTime.Now }) var xx=db.Insertable(new Order() { Name = "order1", CustomId = 1, Price = 0, CreateTime = DateTime.Now })
.ToSqlString(); .ExecuteCommand();
db.Ado.ExecuteCommand(xx);
//Insert data //Insert data
// db.Insertable(new OrderItem() { OrderId = id, Price = 0, CreateTime=DateTime.Now }).ExecuteCommand(); // db.Insertable(new OrderItem() { OrderId = id, Price = 0, CreateTime=DateTime.Now }).ExecuteCommand();
Console.WriteLine("#### SqlSugarClient End ####"); Console.WriteLine("#### SqlSugarClient End ####");
@ -119,12 +118,12 @@ namespace OrmTest
orderDb.AsInsertable(insertObj).ExecuteCommand(); orderDb.AsInsertable(insertObj).ExecuteCommand();
//Delete ////Delete
orderDb.Delete(insertObj); //orderDb.Delete(insertObj);
orderDb.DeleteById(11111); //orderDb.DeleteById(11111);
orderDb.DeleteById(new int[] { 1111, 2222 }); //orderDb.DeleteById(new int[] { 1111, 2222 });
orderDb.Delete(it => it.Id == 1111); //orderDb.Delete(it => it.Id == 1111);
orderDb.AsDeleteable().Where(it => it.Id == 1111).ExecuteCommand(); //orderDb.AsDeleteable().Where(it => it.Id == 1111).ExecuteCommand();
//Update //Update
orderDb.Update(insertObj); orderDb.Update(insertObj);

View File

@ -18,7 +18,6 @@ namespace OrmTest
JoinTable(); JoinTable();
Async(); Async();
NoEntity(); NoEntity();
Mapper();
SqlFuncTest(); SqlFuncTest();
Subquery(); Subquery();
ReturnType(); ReturnType();
@ -31,29 +30,29 @@ namespace OrmTest
var db = GetInstance(); var db = GetInstance();
var dbTime = db.GetDate(); var dbTime = db.GetDate();
var getAll = db.Queryable<Order>().ToList(); var getAll = db.Queryable<Order>().ToList();
var getLike = db.Queryable<Order>().Where(it=>it.Name.Contains("order1")).ToList();
var getYYYY = db.Queryable<Order>().Select(it => it.CreateTime.ToString("yyyy-MM-dd")).ToList();
var getOrderBy = db.Queryable<Order>().OrderBy(it => it.Name,OrderByType.Desc).ToList(); var getOrderBy = db.Queryable<Order>().OrderBy(it => it.Name,OrderByType.Desc).ToList();
var getOrderBy2 = db.Queryable<Order>().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList(); var getOrderBy2 = db.Queryable<Order>().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList();
var getOrderBy3 = db.Queryable<Order>().OrderBy(it =>new { it.Name,it.Id}).ToList(); var getOrderBy3 = db.Queryable<Order>().OrderBy(it =>new { it.Name,it.Id}).ToList();
var getRandom = db.Queryable<Order>().OrderBy(it => SqlFunc.GetRandom()).First(); //var getRandom = db.Queryable<Order>().OrderBy(it => SqlFunc.GetRandom()).First();
var getByPrimaryKey = db.Queryable<Order>().InSingle(2); var getByPrimaryKey = db.Queryable<Order>().InSingle(2);
var getSingleOrDefault = db.Queryable<Order>().Where(it => it.Id == 1).Single(); var getSingleOrDefault = db.Queryable<Order>().Where(it => it.Id == 1).Single();
var getFirstOrDefault = db.Queryable<Order>().First(); var getFirstOrDefault = db.Queryable<Order>().First();
var getByWhere = db.Queryable<Order>().Where(it => it.Id == 1 || it.Name == "a").ToList(); var getByWhere = db.Queryable<Order>().Where(it => it.Id == 1 || it.Name == "a").ToList();
var getByWhere2 = db.Queryable<Order>().Where(it => it.Id == DateTime.Now.Year).ToList(); var getByWhere2 = db.Queryable<Order>().Where(it => it.Id == DateTime.Now.Year).ToList();
var getByFuns = db.Queryable<Order>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList(); var getByFuns = db.Queryable<Order>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList();
var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList(); // var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList();
var btime = Convert.ToDateTime("2021-1-1"); var btime = Convert.ToDateTime("2021-1-1");
var etime = Convert.ToDateTime("2022-1-12"); var etime = Convert.ToDateTime("2022-1-12");
var test01 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Year,btime, etime)).ToList(); var test01 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Year,btime, etime)).ToList();
var test02 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Day, btime, etime)).ToList(); var test02 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Day, btime, etime)).ToList();
var test03 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Month, btime, etime)).ToList(); var test03 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Month, btime, etime)).ToList();
var test04 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Second, DateTime.Now, DateTime.Now.AddMinutes(2))).ToList(); //var test04 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Second, DateTime.Now, DateTime.Now.AddMinutes(2))).ToList();
var q1 = db.Queryable<Order>().Take(1); var q1 = db.Queryable<Order>().Take(1);
var q2 = db.Queryable<Order>().Take(2); var q2 = db.Queryable<Order>().Take(2);
var test05 = db.UnionAll(q1, q2).ToList(); var test05 = db.UnionAll(q1, q2).ToList();
var test06 = db.Queryable<Order>(). var test06 = db.Queryable<Order>().ToList();
Where(it => it.Price == 0 ? true : it.Name == it.Name)
.ToList();
Console.WriteLine("#### Examples End ####"); Console.WriteLine("#### Examples End ####");
Console.WriteLine("#### Examples End ####"); Console.WriteLine("#### Examples End ####");
} }
@ -120,11 +119,11 @@ namespace OrmTest
Console.WriteLine("#### Subquery Start ####"); Console.WriteLine("#### Subquery Start ####");
var db = GetInstance(); var db = GetInstance();
var list = db.Queryable<Order>().Take(10).Select(it => new //var list = db.Queryable<Order>().Take(10).Select(it => new
{ //{
customName=SqlFunc.Subqueryable<Custom>().Where("it.CustomId=id").Select(s=>s.Name), // customName=SqlFunc.Subqueryable<Custom>().Where("it.CustomId=id").Select(s=>s.Name),
customName2 = SqlFunc.Subqueryable<Custom>().Where("it.CustomId = id").Where(s => true).Select(s => s.Name) // customName2 = SqlFunc.Subqueryable<Custom>().Where("it.CustomId = id").Where(s => true).Select(s => s.Name)
}).ToList(); //}).ToList();
var list2 = db.Queryable<Order>().Where(it => SqlFunc.Subqueryable<OrderItem>().Where(i => i.OrderId == it.Id).Any()).ToList(); var list2 = db.Queryable<Order>().Where(it => SqlFunc.Subqueryable<OrderItem>().Where(i => i.OrderId == it.Id).Any()).ToList();
@ -137,11 +136,11 @@ namespace OrmTest
Console.WriteLine("#### SqlFunc Start ####"); Console.WriteLine("#### SqlFunc Start ####");
var db = GetInstance(); var db = GetInstance();
var index= db.Queryable<Order>().Select(it => SqlFunc.Contains("a", "cccacc")).First(); var index= db.Queryable<Order>().Select(it => SqlFunc.Contains("a", "cccacc")).First();
var list = db.Queryable<Order>().Select(it => new ViewOrder() //var list = db.Queryable<Order>().Select(it => new ViewOrder()
{ //{
Id = SqlFunc.AggregateSum(SqlFunc.IF(it.Id > 0).Return(1).End(0)) // Id = SqlFunc.AggregateSum(SqlFunc.IF(it.Id > 0).Return(1).End(0))
}).ToList(); //}).ToList();
var list2 = db.Queryable<Order>().Select(it => new var list2 = db.Queryable<Order>().Select(it => new
{ {
date = SqlFunc.ToDateShort(it.CreateTime), date = SqlFunc.ToDateShort(it.CreateTime),
@ -149,62 +148,7 @@ namespace OrmTest
}).ToList(); }).ToList();
Console.WriteLine("#### SqlFunc End ####"); Console.WriteLine("#### SqlFunc End ####");
} }
private static void Mapper()
{
Console.WriteLine("");
Console.WriteLine("#### Mapper Start ####");
var db = GetInstance();
//Creater Table
db.CodeFirst.InitTables(typeof(Tree));
db.DbMaintenance.TruncateTable("tree");
db.Insertable(new Tree() { Id = 1, Name = "root" }).ExecuteCommand();
db.Insertable(new Tree() { Id = 11, Name = "child1",ParentId=1 }).ExecuteCommand();
db.Insertable(new Tree() { Id = 12, Name = "child2",ParentId=1 }).ExecuteCommand();
db.Insertable(new Tree() { Id = 2, Name = "root" }).ExecuteCommand();
db.Insertable(new Tree() { Id = 22, Name = "child3", ParentId = 2 }).ExecuteCommand();
// Same property name mapping,Both entities have parentId
var list = db.Queryable<Tree>().Mapper(it => it.Parent, it => it.ParentId).ToList();
//If both entities have parentId, I don't want to associate with parentId.
var list1 =db.Queryable<Tree>()
//parent=(select * from parent where id=it.parentid)
.Mapper(it=>it.Parent,it=>it.ParentId, it=>it.Parent.Id)
//Child=(select * from parent where ParentId=it.id)
.Mapper(it => it.Child, it => it.Id, it => it.Parent.ParentId)
.ToList();
//one to one
var list2 = db.Queryable<OrderItemInfo>().Mapper(it => it.Order, it => it.OrderId).ToList();
//one to many
var list3 = db.Queryable<Order>().Mapper(it => it.Items, it => it.Items.First().OrderId).ToList();
//many to many
db.CodeFirst.InitTables<A, B, ABMapping>();
db.Insertable(new A() { Name = "A" }).ExecuteCommand();
db.Insertable(new B() { Name = "B" }).ExecuteCommand();
db.Insertable(new ABMapping() { AId = 1, BId = 1 }).ExecuteCommand();
var list4 = db.Queryable<ABMapping>()
.Mapper(it => it.A, it => it.AId)
.Mapper(it => it.B, it => it.BId)
.Where(it => it.A.Id == 1).ToList();
//Manual mode
var result = db.Queryable<OrderInfo>().Take(10).Select<ViewOrder>().Mapper((itemModel, cache) =>
{
var allItems = cache.Get(orderList => {
var allIds = orderList.Select(it => it.Id).ToList();
return db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList();//Execute only once
});
itemModel.Items = allItems.Where(it => it.OrderId==itemModel.Id).ToList();//Every time it's executed
}).ToList();
Console.WriteLine("#### End Start ####");
}
private static void NoEntity() private static void NoEntity()
{ {

View File

@ -13,33 +13,33 @@ namespace OrmTest
{ {
Console.WriteLine(""); Console.WriteLine("");
Console.WriteLine("#### Deleteable Start ####"); Console.WriteLine("#### Deleteable Start ####");
//No Support DELETE
//SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
//{
// DbType = DbType.QuestDB,
// 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)));
// }
// }
//});
////by entity
//db.Deleteable<Order>().Where(new Order() { Id = 1111 }).ExecuteCommand();
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() ////by primary key
{ //db.Deleteable<Order>().In(1111).ExecuteCommand();
DbType = DbType.QuestDB,
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)));
}
}
});
//by entity
db.Deleteable<Order>().Where(new Order() { Id = 1111 }).ExecuteCommand();
//by primary key ////by primary key array
db.Deleteable<Order>().In(1111).ExecuteCommand(); //db.Deleteable<Order>().In(new int[] { 1111, 2222 }).ExecuteCommand();
//by primary key array ////by expression
db.Deleteable<Order>().In(new int[] { 1111, 2222 }).ExecuteCommand(); //db.Deleteable<Order>().Where(it => it.Id == 11111).ExecuteCommand();
//by expression
db.Deleteable<Order>().Where(it => it.Id == 11111).ExecuteCommand();
Console.WriteLine("#### Deleteable End ####"); Console.WriteLine("#### Deleteable End ####");

View File

@ -32,7 +32,7 @@ namespace OrmTest
[SugarColumn(IsIdentity = true, IsPrimaryKey = true)] [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
[SugarColumn(ColumnDataType = "varchar(255)")]//custom [SugarColumn(ColumnDataType = "string")]//custom
public string Text { get; set; } public string Text { get; set; }
[SugarColumn(IsNullable = true)] [SugarColumn(IsNullable = true)]
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }

View File

@ -1,62 +0,0 @@
using OrmTest;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrmTest
{
public class TestFAST11
{
[SqlSugar.SugarColumn(IsArray =true, ColumnDataType ="text []")]
public string[] Array { get; set; }
public int Sex { get; set; }
public DateTime Date { get; set; }
[SqlSugar.SugarColumn(IsPrimaryKey =true)]
public string Id { get; set; }
[SqlSugar.SugarColumn(IsNullable = true)]
public long X { get; set; }
[SqlSugar.SugarColumn(IsNullable = true,IsJson =true,ColumnDataType ="json")]
public string [] json { get; set; }
}
public class DemoO_Fastest
{
public static void Init()
{
Console.WriteLine("");
Console.WriteLine("#### Insertable Start ####");
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.QuestDB,
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)));
}
}
});
db.CodeFirst.InitTables<TestFAST11>();
db.Fastest<TestFAST11>().BulkCopy(new List<TestFAST11>() {
new TestFAST11(){ Array=new string[]{ "2"}, Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , X=11,json=new string[]{ "x"} }
});
var data = new List<TestFAST11>() {
new TestFAST11(){ Array=new string[]{ "2"}, Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , X=11,json=new string[]{ "x"} }
};
//db.Updateable(data).ExecuteCommand();
db.Fastest<TestFAST11>().BulkUpdate(data);
var x = db.Queryable<TestFAST11>().ToList();
}
}
}

View File

@ -8,7 +8,6 @@ namespace OrmTest
{ {
//Demo //Demo
Demo0_SqlSugarClient.Init(); Demo0_SqlSugarClient.Init();
DemoO_Fastest.Init();
Demo1_Queryable.Init(); Demo1_Queryable.Init();
Demo2_Updateable.Init(); Demo2_Updateable.Init();
Demo3_Insertable.Init(); Demo3_Insertable.Init();