using OrmTest.Models; using OrmTest.UnitTest; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OrmTest { public class Delete : UnitTestBase { private Delete() { } public Delete(int eachCount) { this.Count = eachCount; } public void Init() { var db = GetInstance(); //by entity var t1= db.Deleteable().Where(new Student() { Id = 1 }).ToSql(); base.Check(@"DELETE FROM [STudent] WHERE [Id] IN ('1') ", null, t1.Key, null, "Delte t1 error" ); //use lock var t2 = db.Deleteable().With(SqlWith.RowLock).ToSql(); base.Check(@"DELETE FROM [STudent] WITH(ROWLOCK) ", null, t2.Key, null, "Delte t2 error" ); //by primary key var t3 = db.Deleteable().In(1).ToSql(); base.Check(@"DELETE FROM [STudent] WHERE [Id] IN ('1') ", null, t3.Key, null, "Delte tt error" ); //by primary key array var t4 = db.Deleteable().In(new int[] { 1,2}).ToSql(); base.Check(@"DELETE FROM [STudent] WHERE [Id] IN ('1','2') ", null, t4.Key, null, "Update t4 error"); //by expression var t5 = db.Deleteable().Where(it=>it.Id==1).ToSql(); base.Check(@"DELETE FROM [STudent] WHERE ( [ID] = @Id0 ) ", new List() { new SugarParameter("@Id0",1) }, t5.Key, t5.Value, "Delte t5 error"); var t6 = db.Deleteable().Where("id=@id",new { id=1}).ToSql(); base.Check(@"DELETE FROM [STudent] WHERE id=@id", new List() { new SugarParameter("@id",1) }, t6.Key, t6.Value, "Delte t6 error"); var t7 = base.GetInstanceByAttribute().Deleteable().Where(new List() { new DeleteTestTable() { Id=1, Id2="x" }, new DeleteTestTable() { Id=2, Id2="x1" } }).ToSql(); base.Check("DELETE FROM [DeleteTestTable] WHERE (([Id]=N'1'AND [Id2]=N'x')OR ([Id]=N'2'AND [Id2]=N'x1')) ",null, t7.Key, null, "Delte t7 error"); } } public class DeleteTestTable { [SugarColumn(IsPrimaryKey =true)] public int Id { get; set; } [SugarColumn(IsPrimaryKey = true)] public string Id2 { get; set; } } }