切换到sqlite数据库
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<DataContext>(options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));
});
上面的程序,如果我想要使用sqlite数据库,应该怎么修改?
步骤
- 安装 Microsoft.EntityFrameworkCore.Sqlite 包。
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
- 在 appsettings.json 文件中添加以下内容:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=your_database_name.db"
}
}
- 最后,您需要将 DbContext 的配置更改为使用 SQLite 数据库。您可以使用以下代码将 UseSqlServer 更改为 UseSqlite:
options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
sqlite的版本匹配问题
报错如下:
error: NU1202: Package Microsoft.EntityFrameworkCore.Sqlite 8.0.0 is not compatible with net6.0 (.NETCoreApp,Version=v6.0). Package Microsoft.EntityFrameworkCore.Sqlite 8.0.0 supports: net8.0 (.NETCoreApp,Version=v8.0)
error: Package 'Microsoft.EntityFrameworkCore.Sqlite' is incompatible with 'all' frameworks in project '/Users/song/Code/dotnet_webapi_2/pokemon-review-api-master/PokemonReviewApp/PokemonReviewApp.csproj'.
如何安装指定版本的EF Core
要安装特定版本的 EF Core,您可以使用以下命令:
dotnet add package Microsoft.EntityFrameworkCore --version <VERSION>
其中,
dotnet add package Microsoft.EntityFrameworkCore --version 5.0.0