在 FETCH 语句中选项 NEXT 的用法无效。
System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。
由于在使用sql server2008 时会报错以上错误,需要2012以上版本才行。不想麻烦所以改用MySQL数据库使用。
ABP vNext介绍
过去的一段时间,我们正在设计一个新的主要版本的ASP.NET Boilerplate框架。
框架的名称保持不变,除了我们将其仅称为“ABP”而不是“ASP.NET Boilerplate”。因为,“Boilerplate(样板)”会导致误解,并没反映出它是一个框架(而不是样板代码)。我们继续使用“ABP”名称,因为它是当前ASP.NET Boilerplate框架的继承者,除了它是完全重写的。
Abp vNext是Abp的下一代版本,目前还在经一步完善,代码全部重写,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的。
Abp vNext已经支持了多种数据库,Sql Server,MySql,PostgreSql等。默认情况下,你创建的项目使用的是Sql Server版本,如果需要切换到MySql的话需要:
第一步,在你的XXX.XXX.EntityFrameworkCore(Abp的EF框架模块,用来创建DbContext,数据迁移用的)中,从NuGet中安装Volo.Abp.EntityFrameworkCore.MySQL
第二步修改代码,打开XXXMigrationsDbContextFactory.cs
public XXXMigrationsDbContext CreateDbContext(string[] args)
{
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder()
.UseSqlServer(configuration.GetConnectionString("Default"));//UseSqlServer修改为UseMySql
//.UseMySql(configuration.GetConnectionString("Default"));
return new XXXMigrationsDbContext(builder.Options);
}
默认启动的时候他还是会选择Sql Server,我们看下代码,在Web项目下的XXXWebModule.cs,xx是你的项目名,这个是我们web的Module文件,我们知道Abp是一个Module加载的框架。随后修改ConfigureDatabaseServices方法:
private void ConfigureDatabaseServices()
{
Configure(options =>
{
//options.UseSqlServer();
options.UseMySQL();
});
}
然后在程序包管理器控制台选中XXX.EntityFrameworkCore.DbMigrations执行Update-Database 生成数据库,运行程序正常使用,到此也就完成了Abp vNext 切换MySQL数据库的使用。
PM> Update-Database
Applying migration '20190320072839_Initial'.
Applying migration '20190328093603_Created_Book_Entity'.
Done.
出处:http://www.vnfan.com/helinbin/d/1663f9910c0a6ea5.html
转载请在文章明显位置注明出处。