使用C#和EntityFramework对SQLite进行多线程访问

时间:2014-09-24 15:40:46

标签: c# multithreading entity-framework sqlite system.data.sqlite

我无法从多个线程访问sqllite数据库。

SqlLite输出“SQLite错误(5):数据库被频繁锁定

如果您使用的是NHibernate,我会解释此问题的解决方案here,但我不知道如何在EntityFramework上应用该解决方案。

任何帮助?

修改

特别是我如何管理会话范围,以便在多个线程中重用相同的连接" ?

2 个答案:

答案 0 :(得分:0)

如果您只使用EF,只需将您的所有数据访问权限放在某种类型的"数据库锁定"

// Prevent concurrent access to database, MyDatabase.Lock is a public static object that I use for locking all data access
lock (MyDatabase.Lock)
{
    using (var context = new DbEntities())
    {
    }
}

答案 1 :(得分:0)

我最终使用了SQLCE 4.0,结果完全可以管理多线程和并发访问