SqlSugar源码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

287 lines
11 KiB

6 years ago
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrmTest
{
6 years ago
public partial class NewUnitTest
{
6 years ago
public static void Updateable()
{
6 years ago
Db.CodeFirst.InitTables(typeof(UnitUser));
Db.DbMaintenance.TruncateTable<UnitUser>();
4 years ago
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();
6 years ago
Db.CodeFirst.InitTables(typeof(UnitBoolTest));
var x = new UnitBoolTest();
4 years ago
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();
6 years ago
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();
4 years ago
Db.Updateable<UnitBoolTest>(x).UpdateColumns(it => new { it.BoolValue }).ExecuteCommand();
6 years ago
6 years ago
UnitSaveDiary saveDiary = new UnitSaveDiary();
6 years ago
saveDiary.ID = 2;
saveDiary.TypeID = 10;
saveDiary.TypeName = "类型100";
saveDiary.Title = "标题1000";
saveDiary.Content = "内容";
saveDiary.Time = DateTime.Now;
saveDiary.IsRemind = false;//无论传false/true 最终执行的结果都是以true执行的
6 years ago
var sql = Db.Updateable<UnitDiary>().SetColumns(it => new UnitDiary()
6 years ago
{
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()
{
4 years ago
TypeID = saveDiary.TypeID,
}).Where(it => it.ID == saveDiary.ID).ToSql();
UValidate.Check(sql.Key, @"UPDATE [Diary] SET
[TypeID] = @Const0 WHERE ( [ID] = @ID1 )", "Updateable");
6 years ago
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");
4 years ago
sql = Db.Updateable<NullTest>().SetColumns(it => new NullTest()
{
p = true
}).Where(it => it.id == 1).ToSql();
UValidate.Check(sql.Key, @"UPDATE [NullTest] SET
[p] = @Const0 WHERE ( [id] = @id1 )", "Updateable");
sql = Db.Updateable<NullTest>().SetColumns(it => new NullTest()
{
p2 = true
}).Where(it => it.id == 1).ToSql();
UValidate.Check(sql.Key, @"UPDATE [NullTest] SET
[p2] = @Const0 WHERE ( [id] = @id1 )", "Updateable");
Db.Updateable<Order>()
.SetColumns(it => it.Name == "a")
.SetColumns(it => it.CreateTime == DateTime.Now)
4 years ago
.SetColumns(it => it.Price == 1).Where(it => it.Id == 1).ExecuteCommand();
Db.Updateable<Order>()
4 years ago
.SetColumns(it => new Order { Name = "a", CreateTime = DateTime.Now })
.SetColumns(it => it.Price == 1).Where(it => it.Id == 1).ExecuteCommand();
Db.Updateable<Order>()
.SetColumns(it => new Order { Name = "a", CreateTime = DateTime.Now })
4 years ago
.SetColumns(it => new Order() { Price = 1 }).Where(it => it.Id == 1).ExecuteCommand();
Db.Updateable<Order>()
.SetColumns(it => new Order { Name= it.Id>0 ?"1":"2", CreateTime = DateTime.Now })
.Where(it => it.Id == 1).ExecuteCommand();
Db.Updateable<Order>()
.SetColumns(it => new Order { Name = SqlFunc.IsNull(it.Name,"a")+"b", CreateTime = DateTime.Now })
.Where(it => it.Id == 1).ExecuteCommand();
4 years ago
Db.CodeFirst.InitTables<Unitbluecopy>();
3 years ago
Db.Insertable(new Unitbluecopy()).UseSqlServer().ExecuteBulkCopy();
3 years ago
Db.CodeFirst.InitTables<BoolTest1>();
Db.Updateable<BoolTest1>()
.SetColumns(it =>it.a== !it.a)
.Where(it=>it.a)
.ExecuteCommand();
Db.Updateable<BoolTest1>()
.SetColumns(it=>new BoolTest1() { a = !it.a })
.Where(it => it.a)
.ExecuteCommand();
6 years ago
}
}
4 years ago
public class Unitbluecopy
{
public int Id { get; set; }
[SugarColumn(IsNullable =true)]
public decimal? x { get; set; }
}
public class NullTest
{
public int id { get; set; }
public bool? p { get; set; }
public bool p2 { get; set; }
}
6 years ago
public class UnitSaveDiary
6 years ago
{
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")]
6 years ago
public class UnitDiary
6 years ago
{
[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; }
6 years ago
/// <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; }
}
6 years ago
public class UnitBoolTest
{
6 years ago
[SugarColumn(IsPrimaryKey =true)]
public int Id { get; set; }
public bool BoolValue { get; set; }
6 years ago
public string Name { get; set; }
}
6 years ago
/// <summary>
/// 普通用户表
/// </summary>
[Serializable]
6 years ago
public class UnitUser
6 years ago
{
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; } }
6 years ago
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;
}
6 years ago
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; } }
}
}