实体框架4.1和SQLite

时间:2011-12-15 02:12:47

标签: entity-framework-4.1 system.data.sqlite

我正在使用SQLite数据库和Entity Framework 4.1 Code First。

调用db.SaveChanges时发生以下错误 System.Data.EntityException: The underlying provider failed on Open. ---> System.Data.SQLite.SQLiteException: The database file is locked

我的代码:

using (var db = new Dal.Database())
{
    var newObj = db.Sheet.FirstOrDefault(e => e.SheetId == SheetId);
    if (newObj == null)
        newObj = new Dal.Sheet();

    newObj.SheetTypeCode = SheetTypeCode;
    newObj.SheetCount = SheetCount;

    db.Sheet.Add(newObj);
    db.SaveChanges();
}

请帮帮我。 感谢

1 个答案:

答案 0 :(得分:0)

SQLite是一个单一的数据库文件吗?该应用是否有权访问该文件?该文件绝对不是只读的吗?

所以在SaveChanges上发生错误,这意味着你的代码成功地从你的数据库中读取数据,但是没有写入?

这些可能有你的答案,

Entity Framework with SQLite exception: The underlying provider failed on Commit

'The database file is locked' with System.Data.SQLite

尝试隔离错误,如果您尝试在不先读取数据的情况下将新数据插入数据库,会发生什么?

是否存在内部异常?