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());
}
}

  

ABP Zero项目入门踩坑的更多相关文章

  1. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  2. ABP框架入门踩坑-添加实体

    添加实体 ABP踩坑记录-目录 这里我以问答模块为例,记录一下我在创建实体类过程中碰到的一些坑. 审计属性 具体什么是审计属性我这里就不再介绍了,大家可以参考官方文档. 这里我是通过继承定义好的基类来 ...

  3. ABP框架入门踩坑-配置User Secrets

    配置User Secrets ABP踩坑记录-目录 起因 因为以往习惯在User Secrets中保存连接字符串之类信息,但当我把连接字符串移到secrets.json中后,却发现在迁移过程中会报如下 ...

  4. ABP框架入门踩坑-使用MySQL

    使用MySQL ABP踩坑记录-目录 起因 因为我自用的服务器只是腾讯云1核1G的学生机,不方便装SQL Server,所以转而MySQL. 这里使用的MySQL版本号为 8.0. 解决方案 删除Qi ...

  5. ABP框架入门踩坑-配置数据库表前缀

    配置数据库表前缀 ABP踩坑记录-目录 本篇其实和ABP关系并不大,主要是EF Core的一些应用-.-. 起因 支持数据库表前缀应该是很多应用中比较常见的功能,而在ABP中并没直接提供这一功能,所以 ...

  6. vue2项目,踩坑Jest单元测试

    目前的项目已经维护了挺久,由于客户要求,我们要为项目加上单元测试,挑选一番后选择了Jest(配置简便,开箱即用),下面记录了此次为项目添加Jest作为单元测试的经历. 安装Jest 1. 在项目目录下 ...

  7. ASP.NET+MVC入门踩坑笔记 (一) 创建项目 项目配置运行 以及简单的Api搭建

    哈喽各位 我又回来了! 前段时间研究了下ASP.NET,刚开始也是随便找网上的各种教程来看,但是鉴于本人技术有限,还是走了相当长的一段弯路的.所以我写下了这篇文章.希望各位刚刚入坑的ASP.NET开发 ...

  8. 航遇项目react踩坑

    1.iconfont应用: a.正常用法如下 <span className='iconfont' > iconfont的代码,例如: </span> b.react不能动态 ...

  9. webpack 入门踩坑

    参考来源:知乎张轩 安装 先装好node和npm,因为webpack是一个基于node的项目.然后 npm install -g webpack 全局安装 还可以在当前项目里面也安装一个webpack ...

随机推荐

  1. ASM的一些小坑

    变量必需放到数据段,才有直接对地址赋值的访问权限 segment .data n1 dw 55h segment .text global _nasm_function _nasm_function: ...

  2. 公司git服务器记录

    gitolite:server/web/AmomeWebApp.git gitolite:server/web/AmomeBackendManage.git git@192.168.1.183 === ...

  3. 执行PowerShell脚本的时候出现"在此系 统上禁止运行脚本"错误

    使用get-executionpolicy查看当前的脚本执行策略, 默认是Restricted, 也就是不允许任何脚本运行. 此时应该使用set-executionpolicy remotesigne ...

  4. form表单数据进行json转换

    $.fn.serializeJson = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { ...

  5. POJ3204 Ikki's Story I - Road Reconstruction

    Ikki's Story I - Road Reconstruction Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 7 ...

  6. 24.HashSet

    在前篇博文(HashMap)中详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对HashMap比较熟悉,那么Has ...

  7. 深度学习框架caffe/CNTK/Tensorflow/Theano/Torch的对比

    在单GPU下,所有这些工具集都调用cuDNN,因此只要外层的计算或者内存分配差异不大其性能表现都差不多. Caffe: 1)主流工业级深度学习工具,具有出色的卷积神经网络实现.在计算机视觉领域Caff ...

  8. 隐藏字符 BOM

    如果您在修改任何PHP文件後发生: * 不能登入或者不能登出: * 页顶出现一条空白: * 页顶出现错误警告: * 其它不正常的情况.   则多半是编辑器的问题. 本程序采用UTF-8编码.现在几乎所 ...

  9. 583. Delete Operation for Two Strings

    Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 t ...

  10. js中的块级作用域

    概述 函数是js中最常见的作用域单元, 声明在一个函数内部的变量或函数会在所处的作用域中隐藏起来, 这是有意为之的非常好的设计原则. 但是随着js的发展, 我们有了某个代码块(通常指{..}内部)隐藏 ...