由于实体框架似乎存在压倒性的困难,我正在转向Dapper。我有一个应用程序,它使用远程MS SQL Server数据库和一个小型本地数据库(SQLite)。针对MS SQL Server数据库的Dapper运行良好,但由于某种原因,我无法使SQLite连接正常工作。
从我理解的方式来看,Dapper只需要一个ADO连接。我安装了一个NuGet包“sqlite-net”,并使用以下代码创建连接:
SQLiteConnection con = new SQLiteConnection(“data source=C:\Data\OneDrive\Data\TestDB.sqlite”);
和
SQLiteConnection con = new SQLiteConnection(“data source=C:\Data\OneDrive\Data\TestDB.sqlite; Version=3”);
这些都不起作用,并且它们抛出异常“无法打开数据库文件”。文件SQLite.cs(来自NuGet包)引发了错误。
由于我过去的部署问题,我犹豫是否从System.Data.sqlite.org安装下载的文件。
有人可以帮帮我吗?
答案 0 :(得分:2)
查看nuget包,特别是SQLite.cs文件:
https://github.com/praeclarum/sqlite-net/blob/master/src/SQLite.cs
我看到以下构造函数定义(第180行):
public SQLiteConnection (string databasePath, bool storeDateTimeAsTicks = true)
: this (databasePath, SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.Create, storeDateTimeAsTicks)
{
}
这表明第一个参数只是路径,应该像:
一样调用SQLiteConnection con = new SQLiteConnection(@"C:\Data\OneDrive\Data\TestDB.sqlite”);
@符号将\字符转义为字符代码。这两个问题看起来像你遇到的问题,我会试一试,看看它是否有效。