Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework Sqlite EF全局锁写入_Entity Framework_Sqlite_Locking - Fatal编程技术网

Entity framework Sqlite EF全局锁写入

Entity framework Sqlite EF全局锁写入,entity-framework,sqlite,locking,Entity Framework,Sqlite,Locking,我在实体框架上下文中映射了一个Sqlite数据库 我从几个线程在这个数据库上写东西(我知道这是个坏主意)。但是,我尝试对我的应用程序使用全局锁,如下所示: partial class MyDataContext : ObjectContext { public new int SaveChanges() { lock (GlobalWriteLock.Lock) { try {

我在实体框架上下文中映射了一个Sqlite数据库

我从几个线程在这个数据库上写东西(我知道这是个坏主意)。但是,我尝试对我的应用程序使用全局锁,如下所示:

partial class MyDataContext : ObjectContext
{
    public new int SaveChanges()
    {
        lock (GlobalWriteLock.Lock)
        {
            try
            {
                int result = base.SaveChanges();
                Log.InfoFormat("fff Save changes performed for {0} entries", result);
                return result;
            }
            catch (UpdateException e)
            {
                throw e;
            }
        }
    }
}
尽管如此,我还是从sqlite本身一直得到数据库文件锁定异常。这怎么可能呢

我能看到的唯一解释是base.SaveChanges方法在数据库解锁之前返回,并在返回后继续异步工作

是这样吗?如果是,我如何克服这个问题

注意:我的提交通常是一次更新1-100个条目和/或插入大约1-100个条目