我对 Frank A. Krueger 的 SQLite.net PCL 着迷.我试图将它用作 Android 应用程序和 ASP.NET MVC web 应用程序的公共(public)数据层。我在使用 Android 方面取得了一些成功,但在尝试将其用于网络应用程序时,出现以下异常:
您需要调用 SQLitePCL.raw.SetProvider()。如果您使用的是 bundle ,则可以通过调用 SQLitePCL.Batteries.Init() 来完成。
所以,我在我的 Controller 的构造函数中调用了这个 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 平台?)
有没有办法在 ASP.NET Web 应用程序中运行 SQLite.net PCL,或者我是否必须寻找不同的数据源?
最佳答案
这可以通过安装 nuGet 包 Microsoft.EntityFrameworkCore.Sqlite 来解决(注意,不是 Microsoft.EntityFrameworkCore.Sqlite.Core)
关于c# - 无法在 ASP.NET MVC 中运行 SQLite.net PCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412992/