gpt4 book ai didi

c# - 如何使用 EF 在我的 asp.net core 3.1 MVC 应用程序中正确使用我的 SQLite db?

转载 作者:行者123 更新时间:2023-12-03 19:43:33 24 4
gpt4 key购买 nike

所以我正在尝试创建一个使用 的 ASP.NET Core 3.1 MVC 应用程序。身份 到目前为止它运行良好。
我想向它添加一个 SQLite 数据库,这样我就可以使用 EF(EntityFramework)Code First 来存储用户等,这就是我所做的。

我首先使用 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; }
}

super 直接,然后我将 Startup.cs 中的 ConfigureServices 方法修改为 AddIdentity
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddIdentity<User, IdentityRole>().AddEntityFrameworkStores<UserContext>();

}

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

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

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

我不相信这会奏效
"ConnectionStrings": {
"sqlConnection": "Server=C:\\Users\\user\\Desktop\\user\\Database\\Database.db;Database=Blogging;Trusted_Connection=True;\\\""
}

或者这就是connectionString应该是什么样子?

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

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

最佳答案

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

  • 删除 Microsoft.EntityFrameworkCore.SqlServer Nuget 包,因为您没有使用 SqlServer
  • 添加 Microsoft.EntityFrameworkCore.Sqlite Nuget 包
  • 更改 appsettings.json 中的默认连接到:

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


  • 删除迁移 文件夹。 ( 注意: 部署数据库并升级表结构时不应删除 Migrations 文件夹。)
  • 打开包管理器控制台并运行:add-migration MigrationName
  • 打开包管理器控制台并运行:update-database

  • 如果您在包管理器中运行命令时遇到问题:
    您可以使用 dotnet 命令在终端窗口中运行相同的命令,只需注意它将在您运行命令的任何文件夹中创建一个 Migrations 文件夹:
  • dotnet ef 迁移添加迁移名称
  • dotnet ef 数据库更新

  • 将创建 Sqlite 数据库。

    I also didn't find a way to create the database.db file with a password when creating it, is this possible to change?


  • 删除包Microsoft.Data.Sqlite
  • 加包Microsoft.Data.Sqlite.Core
  • 加包SQLitePCLRaw.bundle_e_sqlcipher
  • 更改 appsettings.json 中的默认连接到:

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


    引用 SQLite doesn't support encrypting database files by default.了解更多信息。

    关于c# - 如何使用 EF 在我的 asp.net core 3.1 MVC 应用程序中正确使用我的 SQLite db?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284020/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com