上代码 USE [master] GO ALTER DATABASE dbName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE dbName SET RECOVERY SIMPLE --简单模式 GO USE dbName GO DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONL...
使用Razor引擎模板生成字符串
使用Razor引擎模板生成字符串,类似于T4模板,T4要学语法,Razor就是就用c#了 用处:代码生成器 安装依赖包 Install-Package RazorEngine.NetCore 生成代码 class Program { static void Main(string[] args) { //简单使用 string...
httpclient下载文件
httpclient下载文件 上代码 private async Task<string> DownLoadFileAsync(string url) { var handler = new HttpClientHandler() { UseCookies = true }; var client = HttpClientFactory.Create(...
webApi返回文件流
webApi返回文件流 定义返回结果 [DataContract] public class FileStreamResult : IHttpActionResult { readonly Stream _stream; readonly string _mediaType; readonly string _fileName; public F...
Luhn算法
Luhn算法(Luhn algorithm),也称为“模10”(Mod 10)算法,是一种简单的校验和算法,一般用于验证身份识别码,例如发卡行识别码、国际移动设备辨识码(IMEI),美国国家提供商标识号码,或是加拿大社会保险号码。该算法由IBM科学家Hans Peter Luhn创造,专利于1954年1月6日申请,1960年8月23日颁证,美国专利号2950048。 该算法现已属于公有领域并...
使用smtp发送邮件
使用qq邮箱授权码发送邮件,避免密码泄露 引用发送邮件包 <package id="MailKit" version="2.7.0" targetFramework="net472" /> <package id="MimeKit" version="2.8.0" targetFramework="net472" /> 发送邮件 static asy...
vue本地路由获取不到参数问题
在使用vue开发系统时,有个客户扫码跳转到系统时默认一些信息,这些信息附带在url的参数中,由于vue页面会自动在url加一个#进行本地路由导航,参数就跑到#前面去了,然后使用route.query就获取不到参数了 问题 在使用vue开发系统时,有个客户扫码跳转到系统时默认一些信息,这些信息附带在url的参数中,由于vue页面会自动在url加一个#进行本地路由导航,参数就跑到#前...
Asp.Net WebApi在swagger中添加版本控制
在Asp.Net WebApi中添加版本控制,同时在swagger中按版本显示接口 引用版本控制包 <package id="Microsoft.AspNet.WebApi.Versioning" version="4.0.0" targetFramework="net46" /> <package id="Microsoft.AspNet.WebApi.Ver...
CallerMemberName(转载)
原文链接 从 .NET Framework 4.5 开始,有了几个快速获取调用方信息的 Attribute。 Attribute 描述 CallerMemberName 允许您打算调用方的方法或属性名称传递给方法。 CallerLineNumber ...
Swagger过滤指定的api显示
在swagger显示的api文档中,隐藏指定的api 实现过滤类 Asp.Net版本 public class SwaggerDocumentFilter : Swashbuckle.Swagger.IDocumentFilter { public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaR...
msbuild生成文件
msbuild生成项目使用的命令文件 test.msbuild <Project> <ItemGroup> <BuildArtifactsDir Include="BuildArtifacts\" /> <SolutionFile Include="\test.sln" /> <NUnitConso...
vue添加手势操作
在开发手机web页面时希望我的网页也可以像App一样可以左右滑动进行操作。如果你也和我的想法一样,你就可以复制我的代码了,一天的工作量又可以划水7小时。 方案一(不推荐了,有坑,表现为:如果页面有滚动条,并且添加了v-hammer:swipe.right,页面无法滚动) 使用基于vue封装的vue2-hammer 安装包 npm install vue2-hammer ...
vant增加全局遮罩层
vant默认提供的加载遮罩太水了,也可能是我太水了不会用,所以找大神写了一个,我抄过来了 增加遮罩控件 在任意位置增加如下两个文件,注意loadingIndex.js引用loading.vue时路径要修改成你的: 模板文件:loading.vue <template> <div> <van-overlay :sho...
vant上传文件到后端
最近在做手机版页面,采用的vant框架,这个上传控件和以前用iview、element有点不一样,iview、element都是直接提供后端接口文件会自动发送到后端,vant需要自己负责发送文件到后端,对于我这种面向百度编程人员还是有点难度。特意记一下,能帮到其他面向百度编程人员 代码 很简单,基本是使用文件构建FormData参数,如下: html代码 <van-upl...
Abp_vue修改客户端地址
客户端地址定义在ts文件src\lib\url.ts中,每次发版时都要修改地址,如果不修改成配置的地址signalR就获取不到js文件,连接不上。 实现 把url地址定义到不打包的js文件中去,这样就可以在发布后也能修改地址,因为abp.js就是原样输出的,我就直接定义到这个abp上了,免得还要再去配置js文件,还有加载顺序问题。 修改src\lib\abp.js文件 ...
Abp_配置跨域为*通配符时报跨域请求错误
当配置跨域域名为*时,signalr链接报错 问题 像这样配置: 然后在浏览器调试窗口中就会看到如下错误: 解决 解决方式应该有两种:第一种是修改服务端跨域配置为自己判断;第二种是修改前端不使用cookie,但是这样会有新的问题就是无法支持负载均衡。我采用第一种,因为第二种要修改abp源码并自己发布js包。 使用SetIsOriginAllowed代替...
abp集成IdentityServer4和单点登录
在abp开发的系统后,需要使用这个系统作单点登录,及其他项目登录账号依靠abp开发的系统。在官方文档上只找到作为登录服务Identity Server Integration,但是host项目却无法使用登录服务生成的Token获取数据。所有的搜索结果包括abp的issue都是说去看identity server4的文档。我比较笨,文档看了还是不会。好在最后还是试出来了。 创建登录中...
2020-01-09-RSA加解密
RAS加解密帮助类,不记得哪里抄的了 IRSAManager public interface IRSAManager { /// <summary> /// 生成私钥 /// </summary> /// <returns>私钥base64字符串</returns> string Creat...
Vue+abp增加三级菜单
原生vue版的abp只支持2级菜单,项目需要增加成3级菜单,一番搜索。成果如下 增加3级菜单显示 修改components->shrinkable-menu->components->sidebarMenu文件,增加一级菜单,并增加两个方法hasChildren和getChildren,避免html因为没有children属性报错 <template&g...
abp部分接口转换为首字母大写返回
在对接手机端app接口时,由于手机端需要返回的模型使用首字母大写的形式,abp(asp.net core)接口默认返回的数据是驼峰命名法,就是首字母小写,我们自己的pc网页端又是使用的驼峰法,所以不能直接改mvc的配置,这样pc端所有的接口都要改。有同学是用的给字段指定json序列化名称: [JsonProperty("Id")] public Guid Id { get; set; ...
Vue+abp树形表格
项目中需要用到树形表格,其他同学找了一个ZkTable,我也就跟着用了,不太好用,有更好的记得联系我。先说下缺点,如果这些不能满足你,后面也没必要看了。 缺点如下(也可能我不会用,如果你会一定记得告诉我): 第一列不能使用模板数据,必须是简单的属性字段,也就不能使用自定义html标签了,如果你用了,不好意思,整个数据显示不出来 单选没有高亮(根本没有单选?),反正我用的多选框代替单...
abp替换IRepository默认注入类型
如果要想重写部分方法,但是又没有实现自定义仓储,就必须从项目的抽象仓储入手,就是继承自EfCoreRepositoryBase的XXXRepositoryBase<TEntity, TPrimaryKey>和XXXRepositoryBase。 实现方法 去掉abstract关键字,把XXXRepositoryBase<TEntity, TPrimaryK...
abp_vue导入导出excel
后端abp,前端vue导入excel,开始准备用直接用npoi,觉得要写太多的代码,就算从以前的复制粘贴也麻烦,所以偷懒直接用别人的轮子Magicodes.IE。这样可以节省很多工作,根据实体生成excel模板、支持枚举、导入时自动验证数据是否合法(必填、类型等) Excel模板 要导入首先要有录入数据的excel模板,以前都是把模板做好,放到服务器上,给一个下载链接给用户下载,...
vue(abp)使用自定义指令实现按钮(任意元素)权限过滤
在使用vue(后端abp)开发中,需要根据权限对按钮进行显示隐藏,问下了公司大神(开发过angular的,可以使用自定义指令),vue应该也有对应的方式,毕竟天下代码差(一)不(大)多(抄); 添加自定义指令 在main.ts中添加如下自定义指令 Vue.directive('role', { inserted: function (el,binding) { //...
vue使用watch没有效果
今天使用vue监控属性改变的时候遇到watch没有触发,记一下 问题 使用watch监控类中变量的属性值(timeSet)或属性(uploadSetInfoList),timeSet值没有绑定到页面,在代码中改变timeSet值时,都无法触发watch的方法,但是监控其他值(绑定到页面的),如果在页面改变值触发了watch方法后再在代码中改变值就能触发watch方法了,如果没有在...
实现通用IEqualityComparer比较器
在使用Linq做两个列表的集合运算时(交集、并集、差集),如果不是使用对象比较而是要用部分属性比较,需要用到比较器(如果没有比较器则会直接比较对象引用),但是(垃圾)微软没有提供默认的比较器。 问题 每次比较一个类型都需要对类型实现比较器,有没有可以像写lambda表达式一样直接比较呢 解决 namespace System.Collections.Generic { ...
使用Ionic打包网页成App并识别二维码
以前介绍过我们系统需要扫描识别二维码 手机浏览器调用摄像头扫码 网站搜索框使用微信扫码 但是使用手机浏览器调用摄像头扫码的体验实在太差了,需要先拍照,还要拍的很清晰,稍微抖了一下就识别不了,这个坑挖下了,自然的填上。今天就是填坑来了,主要是使用ionic把网页打包成app,通过js使用ionic的插件来调用摄像头扫码。 开始吧。 开发网页 开发手机版网页,没有手机版的可以用...
网站搜索框使用微信扫码
背景 客户要求可以直接识别标签二维码对某些仪器设备进行管理,类似于淘宝搜索框可以直接拍照搜索商品一样。前面已经做了一个网页调用摄像头识别二维码的功能,此功能有两个缺陷: 识别需要先拍照,不能直接识别 识别率低,尤其是拍照抖动,二维码内容稍微多一点或二维码小一点就识别不了。 以上两点相加就相当不好用了。 使用微信扫码 鉴于我们的系统已经集成到了微信公众号,所以准备...
手机浏览器调用摄像头扫码
基本是按这个做的h5端呼起摄像头扫描二维码并解析,就不重复介绍了。只是重新压缩了下qrcode.lib.min.js文件,因为这个文章附带的原文件总是出现识别不了的情况,所以我从新打包了下jsqrcode 下载地址,只是重新压缩了jsqrcode,你们可以自己压缩
Linq查询连接guid与varchar字段
使用场景 在数据库设计中进场会出现一些通用表,如通用附件表,一般都是通过ForeignTable(关联的表名)和ForeignKey(关联表的主键)与其他表关联。这样的表在数据库中没有外键关系,而且一般ForeignKey的类型是varchar,为了兼容其他表的主键可能不一样。这样在Linq查询的时候就不能直接关联了,如下代码会编译不通过: from a in db.Workfl...