nuget

C# 数据操作系列

杀马特。学长 韩版系。学妹 提交于 2020-08-11 12:21:45
0.前言 上一章简单介绍了一下ORM框架,并手写了一个类似ORM的工具类。这一章将介绍一个在C#世界里大名鼎鼎的ORM框架——Entity Framework的Core版。 Entity Framework 非Core版目前已经更新到了6代,这是一款经过检验的ORM框架。在这里简单介绍一下Entity Framework(简称EF,额,别拿这个当关键字搜索,要不然你会被忽悠到一个英语培训机构的)的优点。 C#的设计理念是约定优于配置,意思就是通过一定程度的规范性格式化的写法来避免使用配置文件或者配置代码等。而EF可以说是很好的诠释了这个理念。 EF可以在不使用任何配置的前提下,自动解析类与表之间的映射(具体的映射逻辑与我们手写的ORM工具类一致或相近)。 自动跟踪更改。在直接使用通过EF获取的元素时,EF会自动跟踪哪些字段发生了变化,当手动调用保存的时候,EF就会把数据回传给数据库。 可以延迟加载需要的数据,外键引用属性、查询结果等 丰富的映射关系,支持一对一,一对多,多对多,甚至继承、单表多实例等 可以使用Linq 进行查询 非Core版的可以通过数据库表生成实体类,两种都可以通过实体类生成表 基于 ADO.NET 的数据库连接和可用于连接到 SQL Server、Oracle、MySQL、SQLite、PostgreSQL、DB2 等 当然,还有一个特点:EF是约定优于配置

vscode解决nuget插件不能使用的问题

浪子不回头ぞ 提交于 2020-08-11 10:43:24
错误提示 使用vscode安装nuget插件之后出现错误: "Versioning information could not be retrieved from the NuGet package repository. Please try again later." 原因 主要是nuget插件里的拉组件的js文件没有进行小写的控制 解决 打开路径下的文件fetchPackageVersions.js /Users/用户名/.vscode/extensions/jmrog.vscode-nuget-package-manager-1.1.6/out/src/actions/add-methods/fetchPackageVersions.js 修改代码 ...node_fetch_1.default(`${versionsUrl}${selectedPackageName}/index.json`, utils_1.getFetchOptions(vscode.workspace.getConfiguration('http'))) 修改后的代码了toLowerCase()方法 ...node_fetch_1.default(`${versionsUrl}${selectedPackageName.toLowerCase()}/index.json`, utils_1

Shone.Math开源系列1 — 基于.NET 5实现Math<T>泛型数值计算

假装没事ソ 提交于 2020-08-11 10:29:33
Shone.Math开源系列1 — 基于.NET 5实现Math<T>泛型数值计算 作者:Shone .NET 5 preview 4已经可用了,从微软Build2020给出的信息看,.NET 5将实现框架统一,.NET 6将实现界面统一。开源的.NET更加有活力,咱们也从基础开始贡献一点微薄力量,拥抱开源,拥抱.NET未来。 Shone.Math 是一个支持Math<T>泛型数值计算和Real实数运算(浮点数、分数、PI,E,Log,Exp等无理数)的轻量级基础数学库 。该项目开源地址https://github.com/shonescript/Shone.Math,是本人把多年代码积累正式转向.NET 5,也是我的第一个开源项目,请大家多多支持了。 一、.NET泛型数值计算优势 .NET 2.0开始支持泛型编程,支持IEnumerable<T>, List<T>, Func<T,T,…>等各种泛型类型,提高了编程效率和质量,这是公认的价值。 但是对于基础类似的数值运算,.NET没有默认泛型实现方式。StackOverflow上有大量关于泛型数值计算的讨论,C#9.0的部分草案建议也提出添加对泛型计算的支持。 在大量处理数据时,特别是几何或空间数据计算时,泛型数值计算的主要优势是: (1)可重用: 专注于数值计算算法,不用为每种数据编写实现,提高开发效率; (2)无装箱:

NuGet微软官方中国国内镜像

强颜欢笑 提交于 2020-08-11 10:19:34
原文: NuGet微软官方中国国内镜像 为解决国内访问NuGet服务器速度不稳定的问题 ,这里推荐使用NuGet微软官方中国国内镜像 地址:https://nuget.cdn.azure.cn/v3/index.json 添加NuGet源的方式 菜单: 工具 -> NuGet包管理器 -> 程序包管理器设置 来源: oschina 链接: https://my.oschina.net/u/4284005/blog/4283066

dotnet 给任意对象附加任意属性的库

落花浮王杯 提交于 2020-08-11 05:58:46
在使用 dotnet 的时候,有时候会期望某个类多添加一个属性,但是这个类可能是放在引用库里面不能直接修改,或者添加一个属性会影响这个类的设计。那么有没有方法和 WPF 一样支持给任意对象附加任意的属性?本文告诉大家一个好用的库,用来给任意的对象附加任意的属性 要解决的问题是什么? 有一些参数传进来的对象,期望给这些对象添加很业务的属性 某些业务期望内部使用某个对象的某个属性,但是不期望在此业务之外这个属性被使用 期望给某个类添加额外的属性,但是改不动这个类 本文使用的库是一个在 GitHub 开源的 dotnetCampus.ClrAttachedProperty 库 这个库提供了两个不同的 NuGet 包,其中一个包是传统的 Dll 引用包。另一个包是使用 SourceYard 打出来的源代码包,源代码包安装之后将会引用源代码 安装传统的 Dll 引用包的方式如下 dotnet add package dotnetCampus.ClrAttachedProperty --version 1.0.0 安装源代码包的方式如下 dotnet add package dotnetCampus.ClrAttachedProperty.Source --version 1.0.0 在使用的时候两个包只需要选其中一个就可以 安装完成之后就可以给任意的对象附加任意的属性,请看代码 using

一步步入门:NetCore WebApi (包含搭建Swagger)

本小妞迷上赌 提交于 2020-08-11 02:43:07
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 首先,本篇教程为基础教程,大牛请翻过,小白值得一看 如下: 1、准备数据 create database StudentDB go use StudentDB go create table Student ( StudentId varchar ( 50 ) primary key , StudentSex nvarchar ( 2 ), StudentName nvarchar ( 50 ), StudentAge int , CreateDate datetime ) insert into Student values ( newid (), ' 女 ' , ' 王娜 ' , 18 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 李丽 ' , 19 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 阿卜杜拉 ' , 17 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 高骏花 ' , 20 , getdate ()) insert into Student values ( newid (),

基于 abp vNext 和 .NET Core 开发博客项目

拟墨画扇 提交于 2020-08-11 02:29:59
上一篇文章( https://www.cnblogs.com/meowv/p/12956696.html )成功使用了Redis缓存数据,大大提高博客的响应性能。 接下来,将完成一个任务调度中心,关于定时任务有多种处理方式,如果你的需求比较简单,比如就是单纯的过多少时间循环执行某个操作,可以直接使用.net core中内置的实现方式,新建一个类继承 BackgroundService ,实现 ExecuteAsync() 既可。 看一个例子,我们每过一秒输出一句HelloWorld,并写入日志中。 在 .BackgroundJobs 中新建一个Jobs文件夹,添加 HelloWorldJob.cs ,并且继承自 BackgroundService 。 //HelloWorldJob.cs using log4net; using Microsoft.Extensions.Hosting; using System; using System.Threading; using System.Threading.Tasks; namespace Meowv.Blog.BackgroundJobs.Jobs { public class HelloWorldJob : BackgroundService { private readonly ILog _log; public

NetCore Docker 打包 推送 一些问题记录

瘦欲@ 提交于 2020-08-11 00:47:22
一、docker 打包时有私有nuget库 与 官方nuget库 或者多个仓库时 在dockerfile中 ,要怎么保证restore正常   nuget.config文件如下: <? xml version="1.0" encoding="utf-8" ?> < configuration > < packageSources > < add key ="nuget.org" value ="https://api.nuget.org/v3/index.json" protocolVersion ="3" /> < add key ="mynuget" value ="http://192.168.18.189:1086/nuget/" /> </ packageSources > </ configuration > mynuget 为私有库地址   1、单项目时   项目结构   /Test     /Dockerfile     /Tools/Nuget/nuget.config --创建一个nuget.config 文件   Dockerfile 文件 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 -buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr

【复杂系统迁移 .NET Core平台系列】之应用发布与部署

淺唱寂寞╮ 提交于 2020-08-10 20:10:14
源宝导读: 微软跨平台技术框架—.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。 一、背景 随着ERP的产品线越来越多,业务关联也日益复杂,应用间依赖关系也变得错综复杂,单体架构的弱点日趋明显。19年初,由于平台底层支持了分应用部署模式,将ERP从应用子系统层面进行了切割分离,迈出了从单体架构向微服务架构转型的坚实一步。不久的将来,ERP会进一步将各业务拆分成众多的微服务,而微服务势必需要进行容器化部署和运行管理,这就要求ERP技术底层必须支持跨平台,所以将现有ERP系统从.NET Framework迁移到 .NET Core平台势在必行。 前面我介绍了ERP的迁移和调度服务的.NET Core改造过程,当所有的代码已经就绪的时候就要开始考虑发布和部署了。本篇将介绍ERP和周边服务在常见环境下的部署模式。 二、Framework版本的发布 原始的Framwork的发布使用的是编译后拷贝文件的方式进行发布,基本步骤如下: 修改版本号; nuget还原解决方案; 调用MSBuild命令编译; 编译前端脚本; 拷贝文件; 打包成压缩包; 按需推送给客户。 这其中有一些不合理的地方: 修改版本好是使用一个控制台的程序进行修改,可以用脚本替代;

改造 layui 表格组件实现多重排序

 ̄綄美尐妖づ 提交于 2020-08-10 20:10:00
  layui 的表格组件目前只支持单列排序,在实际应用中并不能很好的支撑我们的业务需求。今天一时手痒,决定改造一番以支持多重排序。   实现思路也比较简单,只需要用一个数组来存放所有排序的列,再把这个数组传到后端(后端排序)进行排序即可。沿用一般的使用习惯,按住 shift 键点击表头可增加排序列,按住 ctrl 键点击表头可减少排序列。话不多说,先上最终效果图:    1. 定义排序列数组    我当前用的是 2.5.6 版本,源码之前为适应业务需求也做过相应修改,所以下文说到的行数只是个大概数。   为兼容之前单列排序的使用习惯,我们增加一个 multiSort 的配置属性,默认为 false,为 true 时才开启多列排序。修改源码大概第 235 行,增加两个属性 multiSort、sortCols。 //构造器 , Class = function (options) { var that = this; that.index = ++table.index; that.mutlSort = false; that.sortCols = []; // 组合排序列集合 that.config = $.extend({}, that.config, table.config, options); that.render(); };   2. 修改表头点击事件