ABP问题速查表
如果你领导要让你一夜之间掌握ABP,并且用ABP撸一个项目出来,你很可能很快速的过了一遍ABP文档就马上动手干活了。那么这篇文章就很适合你。
这篇文章列出了很多ABP新手问的问题和解答。注:有些同学问出了很有深度的问题,比如下面的第二个问题,但是这些问题不属于快速解决问题范畴(即速查表),所以把这些问题归类到了这篇文章《ABP有深度的问题》
这篇文章有些问题其实是不属于ABP范畴的,然而ABP新手经常会遇到,所以还是列在这篇文章里面。
大家都知道IT世界变化很快,昨天的答案也许完全不适用今天。所以如果你发现答案过时了,请告诉我去更新,谢谢。
本文推荐使用方法:先直接Ctrl+F查找你的关键字,不行再慢慢看,因为我知道你看这篇文章的时候肯定很赶时间。
这篇文章会不断更新。
- 问:ABP是否支持VS2005 + MS SQL 2008? 答:ABP支持VS2005, 但是ABP不支持MS SQL 2008 (我已经被坑过了),最低支持是MS SQL 2012
- 问:ABP的Entity 主键是怎么自动设置的?Entity和IEntity的源码都没看到[Key]标注啊。 答:不用标注key,直接继承FullAuditedEntity<你的key的数据类型> 即可。注意:这只是这个同学问的问题的一部分,另一部分是:“我是想知道ABP是怎么做到只用继承这个就自动设置的”。这个问题很有深度,但是不属于快速解决问题范畴(即速查表),所以归类到了这篇文章《ABP有深度的问题》
- 问:我从官网下载ABP的Asp.net core + MPA版本为啥编译不通过? 答:这个版本支持很不好,我在不同时间下载过几次这个版本,从来没有被编译通过过,所以我已经放弃了这个版本了。
- 问:一个多对多的中间表,entity又想继承FullAuditedEntity,又想使用另外的2个id来做主键,需要怎么处理?继承FullAuditedEntity会自动生成ID自增长,且自动生成IsDeleted、CreationTime等字段。但又想用另外的id(如CityId,companyId)做中间表的ID控制避免重复数据。改如何处理?答:使用复合主键即可,用如下代码把CityId, companyid做成复合主键。
[Key, Column(Order = 2)]
public int CityId{ get; set; } [Key, Column(Order = 3)]
public int companyId{ get; set; }关于这个答案有同学有不同见解,然而这篇文章目的是让新手看完后马上解决问题,因此采用了这个答案
- 问:ABP的AppService在class级设置了权限,那如何在这个class里的具体某个method支持匿名访问?答:在这个method头部加上 [AbpAllowAnonymous] 即可
- 问:abp angular spa版本如何支持在开发机器和服务器上设置不同的config? 答:1. 在/assets/appconfig.json添加属性和值。2. 修改AppPreBootstrap.ts里的getApplicationConfig方法来支持读取这个值。3. 搞两份appconfig.json,开发机器一份,服务器一份,部署后自动替换为对应的appconfig.json文件
- 问:修改某个记录,当字段值是enum的时候,控件是dropdownlist / select / radio等可选择控件时,总是加载不出正确的值。答:可选择控件的选项值一定要加[],比如nz-select的nz-option的nzValue一定要加[]写成[nzValue],这点和传统的javascript/html区别很大。
- 为啥abp3.6版本的UserManager有CreateIdentityAsync方法,而3.8版本却没有了。项目升级怎么办?答: 因为abp用的auth升级了。请参考https://github.com/aspnet/Security/issues/1310 去升级。
- 为啥使用{{time | date:'yyyy-MM-dd HH:mm'}}在Chrome下可以输出值,在IE11下不可以?答:angular的datetime pipe对IE兼容性很差,最安全的办法是在ts文件写好函数封装好,比如:
formatDateTime(input: string): string {
// moment("2016-01-17T:08:44:29+0100").format('MM/DD/YYYY');
return moment(input).format('YYYY-MM-DD HH:mm');
}然后在html调用,比如 {{formatDateTime(time)}}
- 项目到了一定规模,第一次加载很慢,怎么调优?答:最快最有效的办法是启用Lazy load, 参考这两篇文章:https://angular.cn/guide/router#lazy-loading-route-configuration 和 https://angular.cn/guide/lazy-loading-ngmodules
- angular/typescript是否支持字典dictionary? 答:支持。代码如下
ApplyCount: { [key: string]: boolean; } = {};代码里的boolean是字典dictionary中value的类型,要根据你实际情况来修改
- 为啥有时候返回结果显示undocumented 或者一片空白?答:先看看应当返回null时能否正常显示,如果可以那就是返回结果的dto类型里有循环引用
ABP问题速查表的更多相关文章
- 简明 Git 命令速查表(中文版)
原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...
- .htaccess下Flags速查表
Flags是可选参数,当有多个标志同时出现时,彼此间以逗号分隔. 速查表: RewirteRule 标记 含义 描述 R Redirect 发出一个HTTP重定向 F Forbidden 禁止对URL ...
- Markdown 语法速查表
Markdown 语法速查表 1 标题与文字格式 标题 # 这是 H1 <一级标题> ## 这是 H2 <二级标题> ###### 这是 H6 <六级标题> 文 ...
- jQuery API 3.1.0 速查表-打印版
jQuery API 3.1.0 速查表-打印图,(API来自:http://jquery.cuishifeng.cn/index.html)
- java-Mysql-SQLServer数据类型匹配速查表
java-Mysql-SQLServer数据类型匹配速查表 Mysql ************************************ 当前列 ClassName ColumnType Di ...
- python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表
目录: 一:大O记法 二:各函数高阶比较 三:常用算法和数据结构的复杂度速查表 四:常见的logn是怎么来的 一:大O记法 算法复杂度记法有很多种,其中最常用的就是Big O notation(大O记 ...
- HTML5速查表
HTML5速查表 标签 描述 版本 属性 <!--...--> 定义注释 4 / 5 none <!DOCTYPE> 定义文档类型 4 / 5 none <a> 定 ...
- [翻译]Django速查表
原文在此:https://code.djangoproject.com/wiki/DjangoCheatSheet Django速查表Django教程已经非常好了.这个速查表的作用是创建一个快速开始指 ...
- Java, C#, Swift语法对比速查表
原文:Java, C#, Swift语法对比速查表 Java 8 C# 6 Swift 变量 类型 变量名; 类型 变量名; var 变量名 : 类型; 变量(类型推断) N/A var 变量名= ...
随机推荐
- Spring MVC之中前端向后端传数据
Spring MVC之中前端向后端传数据和后端向前端传数据是数据流动的两个方向, 在此先介绍前端向后端传数据的情况. 一般而言, 前端向后端传数据的场景, 大多是出现了表单的提交,form表单的内容在 ...
- Cocos2d-x环境配置步骤
Cocos2d-x环境配置: (1)安装Visual Studio 2013 软件安装包为:VS2013_RTM_ULT_CHS.iso文件,将其解压后可以直接安装,也可以使用虚拟光驱等软件进行安装. ...
- Python - 一些值得阅读的PEP
1- PEP简介 PEP是Python增强提案(Python Enhancement Proposal)的缩写.社区通过PEP来给Python语言建言献策,每个版本的新特性和变化都是通过PEP提案经过 ...
- JSON库的使用研究(二)
Java 中哪个 JSON 库的解析速度是最快的? 这个问题有意义吗?各个JSON库的性能差距不大?呵呵,差距大不大,自己往下看吧! 这个问题我们应该分为以下四个维度进行研究: 1.序列化 2.反序列 ...
- Object.defineProperty方法
Object.defineProperty() (一次添加/修改一个属性) 用法:Object.defineProperty(obj, prop, descriptor) 方法会直接在一个对象上定义一 ...
- Nexus私服搭建
maven私服的搭建 --> maven -->{ 1,本地仓库(从中央仓库下载保存到本地的或者自己到网上下载的jar文件包) 2,远程仓库 -->{ 1,中央仓库(maven官方j ...
- 函数式编程之-Partial application
上一篇关于Currying的介绍,我们提到F#是如何做Currying变换的: let addWithThreeParameters x y z = x + y + z let intermediat ...
- Apache-httpd.conf详解
## Apache服务器主配置文件. 包括服务器指令的目录设置.# 详见 <URL:http://www.apache.org/docs/> ## 请在理解用途的基础上阅读各指令.## ...
- Ubuntu 安装网卡驱动
搭建Linux平台的无线热点,需要无线网卡和驱动都要支持 AP. 试了下Ubuntu平台默认驱动并不支持AP模式,所以需要更换驱动,具体操作步骤如下: 1.找到自己网卡芯片的型号,由于我的环境是搭建在 ...
- Jenkins自动化构建配置
写在前头 我每次修改代码一点东西,都要进行一个重新发布.重新发布的流程大概如下: 将最新代码同步上传到git上面 Maven打包 mvn clean install 将最新的jar包上传到服务器上面, ...