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().ToPageList(pageindex, pagesize, ref total, ref totalPage); //Db.CodeFirst.InitTables(typeof(CarType)); //Db.Updateable() // .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(); //Db.Ado.ExecuteCommand("insert testtree values(hierarchyid::GetRoot(),geography :: STGeomFromText ('POINT(55.9271035250276 -3.29431266523898)',4326),'name')"); //var list2 = Db.Queryable().ToList(); Db.CodeFirst.InitTables(); Db.Queryable().Where(it => it.Id.HasValue).ToList(); Db.Queryable().Where(it => SqlSugar.SqlFunc.Equals(it.CreateTime.Date, it.CreateTime.Date)).ToList(); var sql = Db.Queryable().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(new UnitSelectTest2()).ToSql().Key; UValidate.Check(sql, @"UPDATE ""unitselecttest2"" SET ""dc""=@Dc,""intnull""=@IntNull WHERE ""int""=@Int", "Queryable"); sql = Db.Queryable().IgnoreColumns(it => it.CreateTime).ToSql().Key; UValidate.Check(sql, "SELECT \"id\",\"name\",\"price\",\"customid\" FROM \"order\" ", "Queryable"); sql = Db.Queryable().IgnoreColumns(it => new { it.Id, it.Name }).ToSql().Key; UValidate.Check(sql, "SELECT \"price\",\"createtime\",\"customid\" FROM \"order\" ", "Queryable"); sql = Db.Queryable().IgnoreColumns("id").ToSql().Key; UValidate.Check(sql, "SELECT \"name\",\"price\",\"createtime\",\"customid\" FROM \"order\" ", "Queryable"); var cts = IEnumerbleContains.Data(); var list2=Db.Queryable() .Where(p => /*ids.*/cts.Select(c => c.Id).Contains(p.Id)).ToList(); var cts2 = IEnumerbleContains.Data().ToList(); ; var list3 = Db.Queryable() .Where(p => /*ids.*/cts2.Select(c => c.Id).Contains(p.Id)).ToList(); var list4 = Db.Queryable() .Where(p => new List { 1, 2, 3 }.Where(b => b > 1).Contains(p.Id)).ToList(); Db.CodeFirst.InitTables(); var list5 = Db.Queryable().Where(it => SqlSugar.SqlFunc.ToString(it.Date.Value.Year) == "1").ToList(); var list6 = Db.Queryable().Where(it => it.Date.Value.Year == 1).ToList(); var list7 = Db.Queryable().Where(it => it.Date.Value.Date == DateTime.Now.Date).ToList(); SaleOrder saleOrderInfo = new SaleOrder(); Db.CodeFirst.InitTables(); var result = Db.GetSimpleClient().Update(o => new SaleOrder() { OrderStatus = 1, CheckMan = saleOrderInfo.CheckMan, CheckTime = DateTime.Now }, o => o.OrderSn == saleOrderInfo.OrderSn && o.OrderStatus != 1); var list14 = Db.Queryable((o1, o2, o3) => new JoinQueryInfos(JoinType.Inner, o1.Id == o2.Id * 2, JoinType.Inner, o1.Id == o3.Id * 4) ) .Select((o1, o2, o3) => new { id = o1.Id, x = o1, x2 = o2, x3 = o3 }).ToList(); var list15 = Db.Queryable((o1, o2, o3) => new JoinQueryInfos(JoinType.Inner, o1.Id == o2.Id * 2, JoinType.Inner, o1.Id == o3.Id * 4) ) .Select((o1, o2, o3) => new TestModel1 { id = o1.Id.SelectAll(), x = o1, x2 = o2, x3 = o3 }).ToList(); var list16=Db.Queryable().Select(x => new BoolTest1 { // c=SqlFunc.Subqueryable().Where(z=>z.Id==x.Id).Count(), a = !string.IsNullOrEmpty(x.Name) }).ToList(); } public static class IEnumerbleContains { public static IEnumerable 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; } /// /// 订单号 /// public string OrderSn { get; set; } /// /// 客户编号 /// public string CustomerNo { get; set; } /// /// 收货人姓名 /// public string CustomerName { get; set; } /// /// 成本总金额 /// public decimal CostAmount { get; set; } /// /// 订单总金额 /// public decimal OrderAmount { get; set; } /// /// 实收金额(整单优惠后) /// public decimal RealOrderAmount { get; set; } /// /// 销货日期 /// public DateTime SaleDate { get; set; } /// /// 下单时间 /// public DateTime AddTime { get; set; } /// /// 媒体资源投放ID /// public string IndustryCode { get; set; } public string IndustryName { get; set; } /// /// 备注 /// public string Remark { get; set; } /// /// 班组 /// public int Team { get; set; } /// /// 销售员编号 /// public string SellerNo { get; set; } /// /// 销售员姓名 /// public string SellerName { get; set; } /// /// 操作人ID /// public virtual string HandlerCode { get; set; } /// /// 操作者 /// public string Handler { get; set; } /// /// 发货仓库代号 /// public string StoreCode { get; set; } /// /// 发货仓库名称 /// public string StoreName { get; set; } /// /// 销货店铺渠道代号 /// public string ShopChannelCode { get; set; } /// /// 销货店铺渠道名称 /// public string ShopChannelName { get; set; } /// /// 订单产品数 /// public int GoodsNum { get; set; } /// /// 礼品数量 /// public int GiftNum { get; set; } /// /// 对应预订单号 /// public string CustomerOrderSn { get; set; } /// /// 订单赠送积分 /// public int Points { get; set; } /// /// 应收款金额 /// public decimal AccountsDueAmount { get; set; } /// /// 来自预约单号 /// public string ReserationOrderSn { get; set; } /// /// 订单状态 0为未审核 1为已审核 /// public int OrderStatus { get; set; } /// /// 审核人 /// public string CheckMan { get; set; } /// /// 审核时间 /// public DateTime? CheckTime { get; set; } /// /// 结算类型 0为非金工石(零售) 1为金工石 /// public int SettleType { get; set; } /// /// 使用积分 /// public int PayPoints { get; set; } /// /// 积分抵现金额 /// public decimal PointsExchangeMoney { get; set; } /// /// 是否已推送微信消息 /// 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; } } } public class TestModel1 { public int id { get; set; } public Order x { get; set; } public Order x2 { get; set; } public Order x3 { get; set; } } }