ABP项目入门踩坑
1.下载ABP项目模板,
打开网址https://aspnetboilerplate.com/Templates,选择MultiPage Web Application,输入项目名称和验证码,即可点击Create My Project按钮下载代码
2.下载完成之后,会跳到https://aspnetboilerplate.com/Pages/Documents/Zero/Startup-Template-Core页面,即开始文档,按照文档就可以完成入门的操作了。
3.安装最新版本的VS2017,必须v15.3.5以上,如果电脑系统是window7,还需要安装更新https://www.microsoft.com/en-us/download/details.aspx?id=40855(power shell 4.0),vs2017的nuget控制台必须要power shell 3.0以上。
4.用vs2017打开下载的项目。打开工具->选项->nuget包管理器->程序包源,添加一个程序包源地址:https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json,即下载的项目中aspnet-core文件夹的NuGet文件的地址,
然后生成项目
5.生成数据库
(1)在MyABP.Web.Mvc项目下找到appsettings.json文件,根据自己的需要设置数据库连接字符串
(2)打开工具->nuget包管理器->程序包管理器控制台,修改默认项目为MyABP.EntityFrameworkCore,输入Update-Database命令,回车,这里需要执行命令两次,反正我执行一次只有一个没有表的数据库生成。。
(3)设置MyABP.Web.Mvc为启动项目,设置运行为MyABP.Web,不用IIS,运行项目即可看到网站打开登录界面,输入用户名:admin,密码: 123qwe ,即可打开首页
(4)点击Tenants,如果是sql2005或者sql2008的数据库,会报错:SqlException: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效
因为ef core默认生成的分页sql不支持低版本的数据库。修改MyABP.EntityFrameworkCore项目中的 MyABPDbContextConfigurer文件如下即可
public static class MyABPDbContextConfigurer { public static void Configure(DbContextOptionsBuilder<MyABPDbContext> builder, string connectionString) { //builder.UseSqlServer(connectionString); //支持sql2005,2008的分页 builder.UseSqlServer(connectionString, b => b.UseRowNumberForPaging()); } public static void Configure(DbContextOptionsBuilder<MyABPDbContext> builder, DbConnection connection) { //builder.UseSqlServer(connection); //支持sql2005,2008的分页 builder.UseSqlServer(connection, b => b.UseRowNumberForPaging()); } }