【问题标题】:How to install Entity Framework and SQLite for UWP Windows 10?如何为 UWP Windows 10 安装实体框架和 SQLite?
【发布时间】:2018-10-08 18:08:06
【问题描述】:
我有一个 UWP windows 10 应用程序,我想知道如何使用 SQLite 安装 Entity Framework 或 Entity Framework Core 以将数据库存储在本地 App_Data 目录中。 NuGet 搜索有点令人困惑,因为列出的版本太多,似乎没有一个特定于 UWP。
【问题讨论】:
标签:
c#
entity-framework
sqlite
uwp
【解决方案1】:
NuGet 以下适用于 UWP/Windows 10 的包:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Tools
安装 NuGet 包后的 C# 代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace App1.Database
{
public class Account
{
public int Id { get; set; }
public string User { get; set; }
public string Pass { get; set; }
}
public class App1Db : Microsoft.EntityFrameworkCore.DbContext
{
Microsoft.EntityFrameworkCore.DbSet<Account> Account;
}
}
【解决方案2】:
经过反复试验,这个较新的 MS Doc(2018 年 10 月 12 日)成功了:
https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started
- 您必须更新 Windows 10 才能构建 16229。
- Visual Studio 必须更新到 15.7+
- .Net Core 必须至少是 2.1 SDK
以下是我遇到的一些警告:
我必须更新 Win10 才能构建 17763
我的 UWP 应用。 必须使用最低版本的 Fall Creators Update 来定位 Build 17763
项目参考:文档使这种方式令人困惑。简单地说,您的 .Net Core EF 迁移控制台项目引用您的 .Net 标准 EF 模型库项目,而您的 UWP 应用程序项目引用您的 .Net 标准 EF 模型库项目。
-
确保您的任何项目中都没有任何 SQLite 开源库(SQLitePCLRaw、Microsoft.Data.SQLite.Core 等 - 这些往往会混淆 Entity Framework)
李>
最后一件事:我将所有 Microsoft.EntityFrameworkCore 库下载到我的模型库项目中AND System.ComponentModel.Annotations(您将需要它来为您的架构装饰 PK)
【解决方案3】:
我知道旧帖子,但我只花了 2 天时间尝试获得一个使用 Entity Framework Core 3 和 SQLite 工作的 WinForms 应用程序,以防它帮助某人:
请注意,我所有与 SQLlite 相关的代码都在一个由 WinForms UI 主项目引用的类库项目中。我发现我还必须将“SQLitePCLRaw.bundle_e_sqlite”包引用添加到 WinForms 项目才能工作(因为 SQLitePCLRaw.core.dll 的搜索路径与主可执行文件相关,而不是数据库子项目)