Update demo

This commit is contained in:
sunkaixuan
2019-06-04 12:36:18 +08:00
parent b6a747dbf2
commit f0cffe712b
29 changed files with 1074 additions and 102 deletions

View File

@@ -10,7 +10,7 @@ namespace OrmTest
{
public static SqlSugarClient Db=> new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.MySql,
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true,
@@ -23,6 +23,12 @@ namespace OrmTest
}
}
});
public static void RestData()
{
Db.DbMaintenance.TruncateTable<Order>();
Db.DbMaintenance.TruncateTable<OrderItem>();
}
public static void Init()
{
CodeFirst();

View File

@@ -48,9 +48,9 @@ namespace OrmTest
task8.Wait();
UValidate.Check(8, task8.Result[0].id, "ado");
var task9=Db.Ado.SqlQuery<Order, OrderItem>("select * from `order` ;select * from OrderDetail");
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");
var task10 = Db.Ado.SqlQueryAsync<Order, OrderItem>("select * from [order];select * from OrderDetail");
task10.Wait();
}
}

View File

@@ -13,13 +13,12 @@ namespace OrmTest
if (Db.DbMaintenance.IsAnyTable("UnitCodeTest1", false))
Db.DbMaintenance.DropTable("UnitCodeTest1");
Db.CodeFirst.InitTables<UnitCodeTest1>();
Db.CodeFirst.InitTables<UnitCodeTest1>();
}
public class UnitCodeTest1
{
[SqlSugar.SugarColumn(IndexGroupNameList = new string[] { "group1" })]
public int Id { get; set; }
[SqlSugar.SugarColumn(DefaultValue = "now()", IndexGroupNameList = new string[] { "group1" })]
[SqlSugar.SugarColumn(DefaultValue="getdate()", IndexGroupNameList =new string[] {"group1" } )]
public DateTime? CreateDate { get; set; }
}
}

View File

@@ -11,24 +11,24 @@ namespace OrmTest
public static void Json()
{
Db.CodeFirst.InitTables<JsonTest>();
Db.DbMaintenance.TruncateTable<JsonTest>();
Db.Insertable(new JsonTest() { Order = new Order { Id = 1, Name = "order1" } }).ExecuteCommand();
var list = Db.Queryable<JsonTest>().ToList();
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 JsonTest() { Id = 1, Order = new Order { Id = 2, Name = "order2" } }).ExecuteCommand();
list= Db.Queryable<JsonTest>().ToList();
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");
var list2 = Db.Queryable<JsonTest>().ToList();
var list2 = Db.Queryable<UnitJsonTest>().ToList();
}
}
public class JsonTest
public class UnitJsonTest
{
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
[SqlSugar.SugarColumn(ColumnDataType = "varchar(4000)", IsJson = true)]
[SqlSugar.SugarColumn(ColumnDataType = "varchar(max)", IsJson = true)]
public Order Order { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using System;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -8,19 +9,315 @@ namespace OrmTest
{
public partial class NewUnitTest
{
public static void Queryable() {
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);
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(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; }
}
}
}

View File

@@ -12,7 +12,7 @@ namespace OrmTest
public static SqlSugarClient simpleDb => new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.MySql,
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true,
@@ -27,7 +27,7 @@ namespace OrmTest
});
public static SqlSugarClient ssDb => new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.MySql,
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true,
@@ -43,7 +43,7 @@ namespace OrmTest
});
public static SqlSugarClient singleDb = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.MySql,
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true,
@@ -58,7 +58,7 @@ namespace OrmTest
});
public static SqlSugarClient singleAndSsDb = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.MySql,
DbType = DbType.SqlServer,
ConnectionString = Config.ConnectionString,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true,

View File

@@ -13,10 +13,10 @@ namespace OrmTest
public static void Thread3()
{
Console.WriteLine("Thread3");
SimpleAsync3();
IsShardSameThreadAsync3();
SingleAsync3();
SingleAndIsShardSameThreadAsync3();
SimpleAsync3().Wait();
IsShardSameThreadAsync3().Wait();
SingleAsync3().Wait();
SingleAndIsShardSameThreadAsync3().Wait();
}

View File

@@ -10,7 +10,7 @@ namespace OrmTest
{
public static void Check(object a, object b, object name)
{
if (a?.ToString() != b?.ToString())
if (a?.ToString()?.Trim() != b?.ToString()?.Trim())
{
throw new Exception(name + " error");
}

View File

@@ -11,18 +11,139 @@ namespace OrmTest
{
public static void Updateable()
{
Db.CodeFirst.InitTables(typeof(SYS_USER));
Db.DbMaintenance.TruncateTable<SYS_USER>();
Db.Insertable(new SYS_USER() { 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 SYS_USER() { USER_ID=1, PWD_LASTERRTIME = null }).WhereColumns(it=> new{ it.PWD_ERRORCOUNT, it.PWD_LASTERRTIME }).ExecuteCommand();
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, @"UPDATE [Diary] SET
[IsRemind] = @Const0 WHERE ( [ID] = @ID1 )", "Updateable");
sql = Db.Updateable<UnitDiary>().SetColumns(it => new UnitDiary()
{
TypeID = saveDiary.TypeID,
}).Where(it => it.ID == saveDiary.ID).ToSql();
UValidate.Check(sql.Key, @"UPDATE [Diary] SET
[TypeID] = @Const0 WHERE ( [ID] = @ID1 )", "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 SYS_USER
public class UnitUser
{
private System.Int64? _USER_ID;
/// <summary>