c# - DbContextBuilder 不包含 UseSqlite 的定义
问题描述
我是 UWP 的新手,我正在尝试设置我的项目以使用 SQLite 数据库,我正在使用 Microsoft.EntityFrameworkCore.SQLite。
当我尝试设置数据库上下文时,我不断收到此错误。
DbContextOptionsBuilder 不包含 UseSqlite 的定义,并且找不到接受 DBcontextoptionsbuilder 类型的第一个参数的可访问扩展方法(您使用的是指令还是程序集引用)
这是我的代码
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BradamaInternationalSkill.Models
{
/// <summary>
/// The Entity Framework Database Context.
/// </summary>
public class PersonContext : DbContext
{
internal DbSet<Person> People { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=People.db");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Make Id required.
modelBuilder.Entity<Person>()
.Property(p => p.Id)
.IsRequired();
// Make Name required.
modelBuilder.Entity<Person>()
.Property(p => p.Name)
.IsRequired();
}
}
}
解决方案
我通过卸载 Nuget 包“Microsoft Entity Framework Core”并安装“Entity.Framework.Core.Sqlite.Design”解决了这个问题。我不知道为什么它解决了这个问题,但错误消失了,我很高兴,这才是最重要的。
推荐阅读
- docker - 由 Dockerfile 或 Docker-compose 文件创建的 Docker 卷
- reactjs - 反应,在选择选项上获取数据属性
- reactjs - React Native Firebase 的侦听器会优化 Auth 和 FireStore 查询,还是建议创建自定义缓存?
- verilog - 连续赋值中的非法赋值表达式。Verilog 八进制 2 到 1 多路复用器
- android - 中国手机上的Android硬重置
- python - 从泛欧交易所网站(欧洲证券交易所)导入“上市股票”
- php - finfo_file():CodeIgniter 4.0.4 中的空文件名或路径
- azure - 如何使用 ansible 在一个循环中挂载多个磁盘
- php - 如何制作(用于 VS 代码的 PHP 工具)不制作(emmet.excludeLanguages)到 PHP 语言
- regex - 如何在具有多个条件且可能具有多个关键字段实例的两列中搜索特定文本?