一般而言,使用SqlSugar的DbFirst功能创建数据库表实体类时,如果数据库表有主键,生成的实体类对应属性也会标识为主键,如下图所示。
但有时候生成的实体类没有自动配置主键,这时可以通过以下方式进行删除操作:
1)如果实体类有主键或类似主键的属性,可以采用[SugarColumn(IsPrimaryKey=true)]手工设置主键属性,然后删除数据时按主键属性删除数据。示例代码如下所示(示意代码来自参考文献1):
db.Deleteable<Student>(new Student() { Id = 1 }).ExecuteCommand();//单条数据删除
db.Deleteable<Student>(list).ExecuteCommand();//多条数据删除,集合每条记录仅包含主键
2)调用In或where函数按条件删除数据。例代码如下所示(示意代码来自参考文献1):
db.Deleteable<Student>().In(it=>it.Id,new int[] { 1, 2 }).ExecuteCommand();//删除多条数据
db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();//按条件删除数据
3)获取完整的数据记录,然后调用Deleteable函数删除。
db.Deleteable<Student>(lstStudents).ExecuteCommand();//集合每条记录包含所有属性数据
参考文献:
[1]https://www.donet5.com/home/Doc?typeId=1195