Обновление
Я протестировал ваш код локально и увидел, что поведение действительно происходит, и после некоторой отладки, я думаю, у меня может быть две причины:
Во-первых, конструктор имеет только SQLiteOpenFlags.Create
флаг.По-видимому, это не дает вам никаких других разрешений, включая чтение / запись.Вместо этого вы можете либо вообще пропустить этот второй аргумент:
_database = new SQLiteAsyncConnection(DBPath);
, либо включить явный флаг ReadWrite
(я также включил флаг FullMutex
, как рекомендуется для асинхронного соединения):
_database = new SQLiteAsyncConnection(
DBPath,
SQLiteOpenFlags.Create |
SQLiteOpenFlags.FullMutex |
SQLiteOpenFlags.ReadWrite );
Вторая проблема возникает при создании таблицы GeneratorTable
в БД.SQLite не знает, как хранить свойство Version
, так как это пользовательский тип GeneratorVersion
.Поэтому вам, вероятно, придется разбить его на простые свойства или добавить атрибут [Ignore]
.
Исходный ответ
Я проверил ваш исходный код и обнаружил, что вы пытаетесь сохранить базу данныхв папке Environment.SpecialFolder.Personal
.Для UWP это фактически разрешается в C:\Users\$Username$\Documents
, к которому приложение UWP не имеет доступа, так как оно работает в песочнице и не имеет доступа к нему.
Вместо этого вы должны использовать папку данных приложения (котораяВы, вероятно, на самом деле намеревались):
Path.Combine(ApplicationData.Current.LocalFolder.Path, FILE_NAME);