EF sqlite3报错 "System.Data.Entity.Core.EntityException: 在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。

Posted 怪先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF sqlite3报错 "System.Data.Entity.Core.EntityException: 在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。相关的知识,希望对你有一定的参考价值。

问题:sqlite3使用ef框架操作数据库报错

问题原因:数据库文件没有访问权限

结局方案:可以将数据库文件所在的文件夹的访问权限添加Everyone用户权限。

 

错误:"System.Data.Entity.Core.EntityException: 在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。 ---> System.Data.SQLite.SQLiteException: attempt to write a readonly database\r\nattempt to write a readonly database\r\n 在 System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)\r\n 在 System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)\r\n 在 System.Data.SQLite.SQLiteDataReader.NextResult()\r\n 在 System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)\r\n 在 System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)\r\n 在 System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)\r\n 在 System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()\r\n 在 System.Data.SQLite.SQLiteTransaction.Begin(Boolean deferredLock)\r\n 在 System.Data.SQLite.SQLiteTransactionBase..ctor(SQLiteConnection connection, Boolean deferredLock)\r\n 在 System.Data.SQLite.SQLiteTransaction..ctor(SQLiteConnection connection, Boolean deferredLock)\r\n 在 System.Data.SQLite.SQLiteConnection.BeginDbTransaction(IsolationLevel isolationLevel)\r\n 在 System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel)\r\n 在 System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<BeginTransaction>b__0(DbConnection t, BeginTransactionInterceptionContext c)\r\n 在 System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)\r\n 在 System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.BeginTransaction(DbConnection connection, BeginTransactionInterceptionContext interceptionContext)\r\n 在 System.Data.Entity.Core.EntityClient.EntityConnection.<>c__DisplayClass6.<BeginDbTransaction>b__4()\r\n 在 System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation)\r\n 在 System.Data.Entity.Core.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)\r\n --- 内部异常堆栈跟踪的结尾 ---\r\n 在 System.Data.Entity.Core.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)\r\n 在 System.Data.Entity.Core.EntityClient.EntityConnection.BeginTransaction()\r\n 在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)\r\n 在 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction)\r\n 在 System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClassb.<SaveChangesInternal>b__8()\r\n 在 System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation)\r\n 在 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction)\r\n 在 System.Data.Entity.Core.Objects.ObjectContext.SaveChanges(SaveOptions options)\r\n 在 System.Data.Entity.Internal.InternalContext.SaveChanges()\r\n 在 System.Data.Entity.Internal.LazyInternalContext.SaveChanges()\r\n 在 System.Data.Entity.DbContext.SaveChanges()\r\n 在 APPAPI.Method.MedToken.UserLoginToken(String account)",

 

以上是关于EF sqlite3报错 "System.Data.Entity.Core.EntityException: 在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。的主要内容,如果未能解决你的问题,请参考以下文章

EF 代码第一次迁移报错“对象已断开连接或在服务器上不存在”

关于使用EF6.0框架报错The underlying provider failed on Open.

C++ sqlite3使用sqlite3_prepare_v2接口报错,求大神解答

python3.5中import sqlite3报错:ImportError: No module named _sqlite3

ImportError: No module named _sqlite3 报错解决方法

python manage.py startapp app 时候报错No module named _sqlite3