2016-11-03 3 views
1

Я получаю мои ноги мокрыми от Фрэнка А. Крюгера SQLite.net PCL. Я пытаюсь использовать его как общий уровень данных для приложения для Android, а также веб-приложение ASP.NET MVC. Я имел некоторый успех с использованием Android, но при попытке использовать его для веб-приложение, которое я получаю следующее исключение:Не удается запустить SQLite.net PCL в ASP.NET MVC

You need to call SQLitePCL.raw.SetProvider(). If you are using a bundle package, this is done by calling SQLitePCL.Batteries.Init().

Итак, я называю эту Init функцию в конструкторе моего контроллера, прямо вместе с инициализация базы данных:

SQLitePCL.Batteries.Init(); 

var dbPath = Path.Combine(Constants.DataDir, "SdgData.sqlite3"); 
var sqliteConnection = new SQLiteConnection(dbPath); 
var sdgSqlRepository = new SdgSqlRepository(sqliteConnection); 
crm = new CrmManager(sdgSqlRepository); 

Тем не менее, кажется, как будто Init даже не называют - я поставил точку останова на нем, а также в следующей строке с вызовом Combine, а второй ударил без сначала даже заметив. (Возможно, потому что Init является вызовом библиотеки PCL, не применимым к платформе ASP.NET?)

Есть ли способ запустить SQLite.net PCL в веб-приложении ASP.NET, или мне придется искать для другого источника данных?

+0

проект которого SQLitePCL вы используете? Там слишком много. – Searching

+0

Frank A. Krueger - https://github.com/praeclarum/sqlite-net – NargothBond

ответ

0

Вы пытались добавить один из пакетов SQLitePCLRaw в свой проект?

Я обнаружил, что это было необходимо при создании проекта UWP, который ссылался на портативный проект, который сам ссылался на SQLite-net. Для обоих проектов в решении необходим пакет SQLitePCLRaw для вызова функции Batteries.Init().

В сообщении об исключении есть ключ к этой настройке.

Смежные вопросы