SQLite Select implementation

Feb 18 at 12:06 PM
Just built the framework for WEC2013/CF3.9 and it always throws an exception in the finally block at Monitor.Exit method. As I can see Monitor.Enter is absent here. I suppose it has to be added before try section.
SQLiteDataStore.cs
private IEnumerable<object> Select(string entityName, Type objectType, IEnumerable<FilterCondition> filters, int fetchCount, int firstRowOffset, bool fillReferences)
Coordinator
Feb 23 at 3:01 PM
Interesting. That code has been there since at least 2014. I don't fully understand why it's there but my suspicion is that you could probably just remove the code block starting at line 846. Please do so and report back. I'll remove it on my end as well, but I don't have an abundance of time to test this right now, and the production applications where we're using the SQLite ORM don't use command caching, so this block is always skipped.

So in summary, remove these lines:
                if (UseCommandCache)
                {
                    Monitor.Exit(CommandCache);
                }
Feb 24 at 9:44 AM
Removing these lines works fine. Adding code block below at line 639 (just before try block) also works
            if (UseCommandCache)
            {
                Monitor.Enter(CommandCache);
            }
I used ORM with SqlCeDataStore and set UseCommandCache = true, so when I switched to SQLiteDataStore (due to WEC2013 does not supportSqlCE) I meet this issue.