我正在使用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();
}
请帮帮我。 感谢
答案 0 :(得分:0)
SQLite是一个单一的数据库文件吗?该应用是否有权访问该文件?该文件绝对不是只读的吗?
所以在SaveChanges上发生错误,这意味着你的代码成功地从你的数据库中读取数据,但是没有写入?
这些可能有你的答案,
Entity Framework with SQLite exception: The underlying provider failed on Commit
'The database file is locked' with System.Data.SQLite
尝试隔离错误,如果您尝试在不先读取数据的情况下将新数据插入数据库,会发生什么?
是否存在内部异常?