Linq DataContext.ExecuteCommand 和 SaveChanges

Linq DataContext.ExecuteCommand and SaveChanges

我目前正在阅读一些使用 LinqToSQL 中的 DataContect.ExecuteCommand 的代码。

我主要关心的是此 ExecuteCommand 的更改何时发生在数据库上。在我调用 ExecuteCommand 或调用 SaveChanges 时会立即发生吗?

一旦您调用该方法,它就会直接发生并针对数据库执行命令,来自 ExecuteCommand:

的文档

Executes SQL commands directly on the database.

因此你不应该将 SaveChanges()ExecuteCommand 方法一起使用,因为在你想直接执行命令的情况下 ExecuteCommand 被用作 SaveChanges() 的替代方法到数据库。例如:

int result = DatabaseContext.ExecuteCommand("delete from blahblah = {0}", entity.Id));