如何为Entity Framework Core配置本地计算机的连接字符串?
实现方案
完全可以不用托管服务器,直接在项目目录生成本地数据库文件,你可以根据需求选以下两种方案:
方案1:使用SQLite(无需安装额外服务,最推荐)
SQLite是文件型数据库,不需要运行独立的服务进程,配置后执行迁移会自动在你指定的路径生成数据库文件:
- 第一步:安装依赖NuGet包
先安装两个必要包:Microsoft.EntityFrameworkCore.Sqlite、Microsoft.AspNetCore.Identity.EntityFrameworkCore - 第二步:配置连接字符串
在项目的appsettings.json的ConnectionStrings节点添加如下配置:
上述配置里的"ConnectionStrings": { "DefaultConnection": "Data Source=./IdentityAuth.db" }./IdentityAuth.db就代表数据库文件会生成在当前项目根目录,文件名可以自定义修改。 - 第三步:修改服务注册代码
在Program.cs(.NET 6及以上版本)里把原来的PostgreSQL数据库注册逻辑替换为SQLite的配置:builder.Services.AddDbContext<你的自定义DbContext类名>(options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"))); // Identity相关的注册逻辑不需要修改,和你参照的教程保持一致即可 - 第四步:执行迁移
运行EF迁移命令即可自动生成数据库文件:
包管理器控制台执行:Add-Migration InitIdentityDB,之后执行Update-Database
dotnet CLI执行:dotnet ef migrations add InitIdentityDB,之后执行dotnet ef database update
执行完成后你就能在项目目录看到生成的.db后缀的数据库文件。
方案2:本地安装PostgreSQL(和教程技术栈一致)
如果你不想更换数据库类型,也可以在本地电脑安装桌面版PostgreSQL,安装全程选默认配置即可,安装完成后用本地连接字符串配置:
Host=localhost;Port=5432;Database=IdentityTestDb;Username=postgres;Password=你安装时设置的管理员密码
配置完成后按教程的迁移步骤执行即可,这个方案需要额外安装PostgreSQL本地服务。
提示:SQLite对Identity的默认配置兼容性很高,默认的Identity模板生成的代码不需要额外调整就能直接运行。
内容的提问来源于stack exchange,提问作者Taggeddev
相关产品推荐
相关产品推荐

