我正在开发一个与C#中的数据库相关的项目。在每次事务提交之后,我希望db将所有缓冲的数据移动到磁盘上。在Linux中,fflush()+ fsync()会提供我想要的东西。为了获得相同的效果,我应该在C#中做什么?
答案 0 :(得分:7)
与C'fflush()
对应的方法是FileStream class的Flush()
。
无论如何,这与文件有关,而与数据库无关。
修改强>
如果您的目标是4.0 .NET Framework,那么有一个new overload接受一个布尔值。根据其描述:
Flush(bool flushToDisk)
flushToDisk
类型:System.Boolean
如果刷新所有中间文件缓冲区为true;否则,错误。
你应该通过true
调用它。
答案 1 :(得分:3)
通常,在使用SQL Server之类的东西时,当数据库将数据写入磁盘时,您无法控制。
您应该担心的是确保您的交易commit
成功。
您使用的是哪个数据库服务器?