首页 > 解决方案 > Visual Studio 2019 - WPF .Net Framework 4.8 - 使用 ADO.NET 添加 SQLite

问题描述

我正在尝试使用 ADO.Net 添加 SQLite,但我真的很努力。

这是我安装的软件包:

我错过了什么?我们如何在 vs2019 中将 sqlite 与 ado.net 一起使用?

标签: sqliteentity-frameworkado.netvisual-studio-2019system.data.sqlite

解决方案


如果您知道步骤,在 WPF .NET Framework 项目上使用 ado.net 安装 Sqlite 相对容易。感谢 MagicAndre 提供指导。开始了:

1 - 从这里安装工具箱。这是直截了当的。

2 - 从这里安装 GAC 。现在这是我失败的地方。我只安装了 64 位软件包,而 GAC 需要 32 位软件包。所以下载并安装:

  • sqlite-netFx46-setup-bundle-x86-2015-1.0.115.0.exe
  • sqlite-netFx46-setup-bundle-x64-2015-1.0.115.0.exe

    安装 32 位软件包时,请仔细检查下图:

    在此处输入图像描述

3 - 如果您还没有创建数据库,请从此处下载数据库浏览器。创建你的数据库,在你的项目中放置一个副本,并包含它。如果您稍后要分发应用程序,您可以将构建操作设置为内容。

4 - 在 Visual Studio 中创建一个解决方案,然后安装块:System.Data.SQLite:这将自动安装其他 4 个包以及 EntityFramework

5 - 在 Visual Studio 中,转到您的服务器资源管理器,右键单击数据连接,添加连接

将您的数据源更改为: SQLite Provider (Simple for EF6 by ErikEJ) (SQLite Provider (Simple for EF6 by ErikEJ))

将打开一个新窗口 顶部的 connectionString 行将采用以下格式:
Data source="C:\Users...\Documents\Visual Studio 2019\Projects\sqlite\sqlite\demo.db";Version=3;
数据源=路径;版本=3; 单击确定,连接将出现在服务器资源管理器中。

在此处输入图像描述



6 - ADO.NET:
右键单击解决方案,添加,添加新项目。转到数据并从数据库中选择 ado.net EF Designer(首先是数据库),您的连接应该会出现: 单击下一步,选择所需的所有表,然后单击完成。然后将准备并打开您的 edmx 文件。

在此处输入图像描述

7 - 在您的 app.config entityFramework 部分中,应该有以下几行:

<providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>

下面应该是 system.data 部分:

<system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>

最后,如果要使用外键,请添加:

Foreign Key Constraints=On; 

在 app.config 文件中的路径和连接字符串的版本之间。

我认为这就是开始。祝你好运。


推荐阅读