我正在使用实体框架作为我的数据访问层。但对于一些任务(例如批量删除),我想使用原始的SQL命令。
但此时EF让我感到惊讶,因为它似乎执行了DML,但没有做任何事情。
如果我直接运行SQL,它会按预期执行并删除数据。那么我做错了什么?
但此时EF让我感到惊讶,因为它似乎执行了DML,但没有做任何事情。
如果我直接运行SQL,它会按预期执行并删除数据。那么我做错了什么?
using (var db = new MyDbContext())
{
var sqlTime = string.Concat("DELETE FROM SYNCING_CONTENT WHERE ID in (SELECT SyncContent_Id FROM SYNCING WHERE EXPIRATION < GETDATE());");
var deleted = db.Database.ExecuteSqlCommand(sqlTime);
return deleted;
}
编辑:
using (var db = new MyDbContext())
{
const string SQL_TIME = "DELETE FROM SYNCING_CONTENT WHERE ID in (SELECT SyncContent_Id FROM SYNCING WHERE EXPIRATION < GETDATE())";
var deleted = db.Database.ExecuteSqlCommand(SQL_TIME);
return deleted;
}