C# 如何在Entity Framework Core 5中以独占方式打开对数据库的访问连接
我的应用程序在本地运行,并将其数据存储在sqlite数据库文件中。我需要确保当应用程序的一个实例正在运行时,另一个实例不能写入同一个数据库文件 如果我不是通过sqlite引擎处理数据库文件,我可以打开它进行读写,而不是关闭它,但是如何在sqlite引擎中做到这一点呢C# 如何在Entity Framework Core 5中以独占方式打开对数据库的访问连接,c#,sqlite,orm,entity-framework-core,connection,C#,Sqlite,Orm,Entity Framework Core,Connection,我的应用程序在本地运行,并将其数据存储在sqlite数据库文件中。我需要确保当应用程序的一个实例正在运行时,另一个实例不能写入同一个数据库文件 如果我不是通过sqlite引擎处理数据库文件,我可以打开它进行读写,而不是关闭它,但是如何在sqlite引擎中做到这一点呢 以及如何在实体框架中的sqlite provider中实现这一点?Hello。检查这是否是您要查找的内容:查看此SO帖子:@Kiril1512б,我知道在sqlite中,我可以锁定表或行。但这并不是我在这件事上需要的。我需要在程序仍
以及如何在实体框架中的sqlite provider中实现这一点?Hello。检查这是否是您要查找的内容:查看此SO帖子:@Kiril1512б,我知道在sqlite中,我可以锁定表或行。但这并不是我在这件事上需要的。我需要在程序仍在运行时锁定对整个数据库的访问(直到我发出保存数据和释放数据库的命令)。@LocEngineer,我尝试使用BEGIN EXCLUSIVE。在开始时执行此命令(甚至在EF之外-仅在用于测试的python脚本中)。但是,这并没有阻止另一个进程(脚本)删除第一个进程可能需要的表。这里的要点是,据我所知,BEGIN EXCLUSIVE只能为事务创建独占访问,而不能为整个db会话创建独占访问。