|
|
|
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<Student>().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<Student>().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<Student>().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<Student>().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<Student>().Where(it=>it.Id==1).ToSql();
|
|
|
|
base.Check(@"DELETE FROM [STudent] WHERE ( [ID] = @Id0 ) ", new List<SugarParameter>() {
|
|
|
|
new SugarParameter("@Id0",1)
|
|
|
|
}, t5.Key, t5.Value, "Delte t5 error");
|
|
|
|
|
|
|
|
var t6 = db.Deleteable<Student>().Where("id=@id",new { id=1}).ToSql();
|
|
|
|
base.Check(@"DELETE FROM [STudent] WHERE id=@id", new List<SugarParameter>() {
|
|
|
|
new SugarParameter("@id",1)
|
|
|
|
}, t6.Key, t6.Value, "Delte t6 error");
|
|
|
|
|
|
|
|
var t7 = base.GetInstanceByAttribute().Deleteable<DeleteTestTable>().Where(new List<DeleteTestTable>() {
|
|
|
|
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; }
|
|
|
|
}
|
|
|
|
}
|