如何使用 EF 在 asp.net 核心 3.1 MVC 应用程序中正确使用 SQLite 数据库?



所以我正在尝试创建一个使用Identity的 ASP.NET Core 3.1 MVC应用程序,到目前为止它运行良好。 我想添加一个SQLite数据库,以便我可以首先使用EF(实体框架(代码存储用户等,这就是我所做的。

我首先使用 SQLite 创建了一个数据库文件,因此我将 Database.db 文件放在桌面上的文件夹中。

然后,我尝试查找有关如何实现它的文档,但是文档太多了,而且它们都非常不同,所以我无法确定实现它的正确方法是什么。

我从设置我的上下文开始

public class UserContext : IdentityDbContext
{
public DbSet<User> Users { get; set; }
}
public class User : IdentityUser
{
public string CustomerID { get; set; }
public string SubscriptionID { get; set; }
public int IsActive { get; set; }
}

超级直接,然后我修改了我的 Startup.cs 中的 ConfigureServices 方法以AddIdentity

public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddIdentity<User, IdentityRole>().AddEntityFrameworkStores<UserContext>();
}

完美,现在我添加了身份。伟大。

这就是问题所在,我希望能够创建一个初始迁移以在我的数据库.db文件中创建一个表,但我不知道将 connectionString 放在哪里以及如何访问它。

我在一些论坛上读到我应该把它存储在appsettings.json中,但是由于它是我磁盘上的一个文件,那么connectionString会是什么样子?

我不相信这会起作用

"ConnectionStrings": {
"sqlConnection": "Server=C:\Users\user\Desktop\user\Database\Database.db;Database=Blogging;Trusted_Connection=True;\""
}

或者这就是连接字符串应该的样子吗?

如何将 SQLite 数据库文件正确实现到我的项目中,以便可以访问和创建我的第一次迁移?

我在创建数据库时也没有找到使用密码创建数据库.db文件的方法,这可以更改吗?

按照以下步骤,将创建 Sqlite 数据库。

  • 删除Microsoft.EntityFrameworkCore.SqlServerNuget 包,因为您没有使用 SqlServer

  • 添加Microsoft.EntityFrameworkCore.SqliteNuget 包

  • appsettings.json中的默认连接更改为:

"DefaultConnection": "Data Source=UserDatabase.db"

  • 删除"迁移">文件夹。(注意:部署数据库并升级表结构后,不应删除"迁移"文件夹。

  • 打开包管理器控制台并运行:add-migration MigrationName

  • 打开包管理器控制台并运行:update-database

如果在包管理器中运行命令时遇到问题:可以使用dotnet命令在终端窗口中运行相同的命令,只需注意,它将在运行命令的任何文件夹中创建一个迁移文件夹:

  • dotnet ef migrations add MigrationName
  • dotnet ef 数据库更新

将创建 Sqlite 数据库。

我在创建数据库

时也没有找到使用密码创建数据库.db文件的方法,这可以更改吗?

  1. 删除包Microsoft.Data.Sqlite

  2. 添加包Microsoft.Data.Sqlite.Core

  3. 添加包SQLitePCLRaw.bundle_e_sqlcipher

  4. appsettings.json中的默认连接更改为:

"DefaultConnection": "Data Source=UserDatabase.db;Password=ComplexPassword"

有关详细信息,请参阅 SQLite 默认情况下不支持加密数据库文件。

我建议首先将数据库文件放在与您正在处理的项目相同的目录中。阅读 Microsoft 文档中的 EF Core 教程,他们在该示例中使用 sqllite。

相关内容

  • 没有找到相关文章

最新更新