Abp 7.0 MVC EF Core迁移报错:不支持'datasource'关键字
解决Abp 7.0 MVC EF Core迁移时“Keyword not supported: 'datasource'”错误
问题根源
这个错误是因为数据库连接字符串和项目配置的数据库提供程序不匹配:你发现的SqliteConnection代码说明项目默认用了SQLite,但你要连接的是SQL Server——SQLite的连接字符串关键字是DataSource(无空格),而SQL Server用的是Data Source(带空格),混用就会触发这个报错。
修复步骤
1. 修正连接字符串
检查DbMigrator和Web项目的appsettings.json,把SQLite风格的连接字符串换成SQL Server的:
- 错误示例(SQLite):
"ConnectionStrings": { "Default": "DataSource=MyDatabase.db" } - 正确示例(SQL Server,按需调整实例名):
"ConnectionStrings": { "Default": "Server=(localdb)\\mssqllocaldb;Database=你的项目名;Trusted_Connection=True;MultipleActiveResultSets=true" }
2. 切换数据库提供程序配置
找到项目模块类(比如你的项目名Module.cs),在ConfigureServices方法里把SQLite配置改成SQL Server:
- 原SQLite配置:
Configure<AbpDbContextOptions>(options => { options.UseSqlite(); }); - 修改后:
Configure<AbpDbContextOptions>(options => { options.UseSqlServer(); });
3. 调整NuGet包
- 移除
Microsoft.EntityFrameworkCore.Sqlite和Volo.Abp.EntityFrameworkCore.Sqlite包 - 添加
Microsoft.EntityFrameworkCore.SqlServer和Volo.Abp.EntityFrameworkCore.SqlServer包
4. 重新执行迁移和种子数据
- 删除之前生成的迁移文件(如果存在)
- 在Package Manager Console中切换到DbContext所在项目,执行:
Add-Migration InitialCreate - 运行DbMigrator项目完成数据种子操作
内容的提问来源于stack exchange,提问作者Booleaner
相关产品推荐
相关产品推荐

