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 变量名= ...
随机推荐
- Oracle递归查询start with connect by prior
一.基本语法 connect by递归查询基本语法是: select 1 from 表格 start with ... connect by prior id = pId start with:表示以 ...
- spark面试总结1
Spark Core面试篇01 一.简答题 1.Spark master使用zookeeper进行HA的,有哪些元数据保存在Zookeeper? 答:spark通过这个参数spark.deploy.z ...
- Docker学习之3——容器
容器(Container) 容器介绍: docker是通过容器来运行业务的,就像运行一个kvm虚拟机是一样的.容器其实就是从镜像创建的一个实例. 我们可以对容器进行增删改查,容器之间也是相互隔离的.和 ...
- Spring AOP实战例子与springmvc整合不起效果的解决办法
在使用AOP之前,首先我们先了解一下什么是AOP吧.在网上很多人将AOP翻译为“面向切面编程”,什么是面向切面?与面向对象有什么区别呢? 在回答这两个问题之前,我们先要明白切面的概念. 切面由切点与增 ...
- jvm详情——3、JVM基本垃圾回收算法回收策略
JVM基本垃圾回收算法回收策略 引用计数(Reference Counting):比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数.垃圾回收时,只用收集计数为0的 ...
- Perl的变量
变量 在perl中,普通变量被称为"标量变量"(scalar),标量是指单个值的意思.还有非标量的数据,如数组.列表.hash等.标量变量和这种非标量的关系,类似于英语里面的单数和 ...
- perl选项、特殊变量、一些函数参考手册
perl一行式程序系列文章:Perl一行式 本文用来收集Perl一行式中涉及到的一些选项.特殊变量的说明,可以用来做速查手册. 本文会逐渐更新. 第一次学Perl一行式时,请直接忽略本文内容,并直接从 ...
- linux内核源码目录结构分析
原文地址 /arch.arch是architecture的缩写.arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在a ...
- 《C#并发编程经典实例》学习笔记—异步编程关键字 Async和Await
C# 5.0 推出async和await,最早是.NET Framework 4.5引入,可以在Visual Studio 2012使用.在此之前的异步编程实现难度较高,async使异步编程的实现变得 ...
- [转]Xcode编译生成ipa文件(因为两种证书所以打两个ipa)
本文转自:https://blog.csdn.net/aisemi/article/details/78305795 1.生成Archive文档a) 需将左上角红色方框里的设备类型选为ios devi ...