问题: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)”,