:boom: EasyCaching is an open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!
MIT License
1.97k
stars
325
forks
source link
BeginTransaction can only be called when the connection is open error in SqLite provider #319
I keep getting
BeginTransaction can only be called when the connection is open
error while using SqLite provider,How does it supposed to work? What am I doing wrong?
https://github.com/dotnetcore/EasyCaching/blob/159a9306538dcef59a714a8d17465197ba5b4417/src/EasyCaching.SQLite/Configurations/SQLiteDatabaseProvider.cs#L55
Here we create "connection pool" per ManagedThreadId. All connection by default are closed.
Here is the only place I found where connection is explicitly opened: https://github.com/dotnetcore/EasyCaching/blob/159a9306538dcef59a714a8d17465197ba5b4417/src/EasyCaching.SQLite/DefaultSQLiteCachingProvider.cs#L93
In, asp.net core environment I frequently encounter thread switching which cause
SQLiteDatabaseProvider
not to use opened connection but to create new connection (closed). Later whenBeginTransaction
is called https://github.com/dotnetcore/EasyCaching/blob/159a9306538dcef59a714a8d17465197ba5b4417/src/EasyCaching.SQLite/DefaultSQLiteCachingProvider.cs#L251 I getBeginTransaction can only be called when the connection is open exception
.