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 变量名= ...
随机推荐
- [Swift]错误提示:Method does not override any method from its superclass
问题原因:方法名称书写错误! ViewController 生命周期 // 加载视图时会调用该方法 override func loadView() { super.loadView() print( ...
- (转)python异步编程--回调模型(selectors模块)
原文:https://www.cnblogs.com/zzzlw/p/9384308.html#top 目录 0. 参考地址 1. 前言 2. 核心类 3. SelectSelector核心函数代码分 ...
- How Tomcat works — 三、tomcat启动(2)
在了解了tomcat 的一些基本组件之后,学习启动过程就更容易理解了,因为启动过程就是启动各个组件. 目录 启动顺序 Bootstrap类 Catalina类 StandardServer类和Stan ...
- [机器学习]梯度提升决策树--GBDT
概述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由 ...
- Deep learning with Python 学习笔记(11)
总结 机器学习(machine learning)是人工智能的一个特殊子领域,其目标是仅靠观察训练数据来自动开发程序[即模型(model)].将数据转换为程序的这个过程叫作学习(learning) 深 ...
- SpringMVC入门学习三
今天是Springmvc学习的第三天,今天我将主要介绍一下: 常用注解的使用 关于非post.get请求的处理 文件上传与下载 拦截器 常用注解的使用 老大在此 @Controller @Cont ...
- 海量数据处理之BitMap
有这样一种场景:一台普通PC,2G内存,要求处理一个包含40亿个不重复并且没有排过序的无符号的int整数,给出一个整数,问如果快速地判断这个整数是否在文件40亿个数据当中? 问题思考: 40亿个int ...
- maven 工程依赖了某个jar包 但还是报java.lang.ClassNotFoundException的问题
一般出现这种情况,首先看看 pom.xml 文件引用的jar文件有没有损坏.或者下载不完整,打开maven仓库根据依赖地址可以查看. 如果还是出现问题,报 java.lang.ClassNotFoun ...
- 【golang-GUI开发】Qt5的安装
golang一直被认为没有好的GUI库,事实并非如此. 目前有基于gtk+3.0的gotk3:https://github.com/gotk3/gotk3 以及接下来我们要说的qt:https://g ...
- 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一)
转发时请注明原创作者及地址,否则追究责任. 原创:alunchen 当创建AspNetCore项目时 当我们创建一个AspNetCore项目时,需要我们手动添加Log: services.AddLog ...