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 变量名= ...
随机推荐
- linux 使用 vim 玩python
vim 的配置文件默认是当前用户宿主目录下的.vimrc 文件.下列配置是常用 vim 进行 python 开 发的配置. " 高亮当前行 set cursorline " 将 T ...
- 关键字New,如阴魂不散
本文是溪源翻译的第一篇技术文章,查看原文,因时间仓促,也许翻译过程措辞不当,还请见谅. 当你使用类似于C#或VisualBasic这种强类型语言,在实例化对象时,你往往会使用New这个关键字.我敢保证 ...
- 性能瓶颈之System
如果Source,Target,Mapping和Session都不存在性能上的瓶颈,则问题可能会出在System 因为Integration Service运行时,它使用了System的资源去运行组件 ...
- SVN切换账号
问题背景 SVN账号在登录的时候,默认是保存在个人电脑的 C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple\ 目录下的 ...
- 200 行代码使用 C# 实现区块链
文章原文来自:Code your own blockchain in less than 200 lines of Go!,原始文章是通过 Go 语言来实现自己的区块链的,这里我们参照该文章来使用 C ...
- 课程回顾-Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
训练.验证.测试划分的量要保证数据来自一个分布偏差方差分析如果存在high bias如果存在high variance正则化正则化减少过拟合的intuitionDropoutdropout分析其它正则 ...
- Spring系列之手写注解与配置文件的解析
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 引入 在前面我们已经完成了IOC,DI,AOP的实现,基本的功能都已经 ...
- Spring Security之动态配置资源权限
在Spring Security中实现通过数据库动态配置url资源权限,需要通过配置验证过滤器来实现资源权限的加载.验证.系统启动时,到数据库加载系统资源权限列表,当有请求访问时,通过对比系统资源权限 ...
- Linux文件系统及文件属性
一.Linux文件系统 1.穿件文件系统 Linux中当磁盘格式化创建文件系统时,会创建一定数量的节点索引Inode以及一定数量的块block,其中inode具有存储文件属性以及指向文件实体block ...
- 【原创】驱动枚举之QueryServiceStatus
BOOL WINAPI QueryServiceStatus( _In_ SC_HANDLE hService, _Out_ LPSERVICE_STATUS lpServiceStatus ); 函 ...