.net Core数据的幕等性】的更多相关文章

一.背景 代码实例:https://gitee.com/D_C_L/CurtainEtcAOP.git我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果. 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果. 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱: 3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的: 4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问…
EF Core 数据变更自动审计设计 Intro 有的时候我们需要知道每个数据表的变更记录以便做一些数据审计,数据恢复以及数据同步等之类的事情, EF 自带了对象追踪,使得我们可以很方便的做一些审计工作,每次变更发生了什么变化都变得很清晰,于是就基于 EF 封装了一层数据变更自动审计 使用效果 测试代码: private static void AutoAuditTest() { // 审计配置 AuditConfig.Configure(builder => { builder // 配置操作…
数据协定等效性特点概述 对于客户端要将某种类型的数据成功发送到服务,或者服务要将数据成功发送到客户端的情况,接收端上并不一定必须存在此发送数据类型. 唯一的要求是两种类型的数据协定应该等效. 要使数据协定等效,其命名空间和名称必须相同. 此外,某一端上的每个数据成员还必须在另一端上具有等效的数据成员.注意,数据协定名称和命名空间以及数据成员名称均区分大小写. 要使数据成员等效,其名称必须相同. 此外,它们还必须表示同一类型的数据,也就是说,其数据协定必须等效. 如果同一端(发送方或接收方)存在两…
原文:WCF技术剖析之十六:数据契约的等效性和版本控制 数据契约是对用于交换的数据结构的描述,是数据序列化和反序列化的依据.在一个WCF应用中,客户端和服务端必须通过等效的数据契约方能进行有效的数据交换.随着时间的推移,不可避免地,我们会面临着数据契约版本的变化,比如数据成员的添加和删除.成员名称或者命名空间的修正等,如何避免数据契约这种版本的变化对客户端现有程序造成影响,就是本节着重要讨论的问题. 一.数据契约的等效性 数据契约就是采用一种厂商中立.平台无关的形式(XSD)定义了数据的结构,而…
摘要 在实际项目中,大多都需要对业务逻辑以及操作数据库的逻辑进行分成操作,这个时候该如何进行数据的迁移呢? 步骤 上篇文章:EF Core数据迁移操作 比如,我们将数据上下文放在了Data层. 看一下BlogContext内容如下: public class BlogContext : DbContext { public BlogContext(DbContextOptions options) : base(options) { } public DbSet<User> Users { s…
C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性 上节我们讲到了socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据.也就是说,read()/recv() 和 write()/send() 的执行次数可能不同. 例如,write()/send() 重复执行三次,每次都发送字符串"abc",那么目标机器上的 read()/recv() 可能分三次接收,每次都接收"…
前言 之前写过一篇<探讨.NET Core数据进行3DES加密和解密问题>,最近看到有人提出弱密钥问题,换个强密钥不就完了吗,猜测可能是与第三方对接导致很无奈不能更换密钥,所以产生本文解决.NET Core中3DES弱密钥问题,写下本文,希望对碰到此问题的童鞋有所帮助. 3DES加密或解密弱密钥 在基于.NET Framework中,我们可以使用反射获取到TripleDESCryptoServiceProvider的“_NewEncryptor”私有方法,从而规避判断弱秘钥问题,但在.NET…
分布式应用程序很复杂,给开发人员调试和修复生产问题带来了一系列挑战.尽管微服务架构可帮助维持一支规模较小,可以自主工作并专注于独立业务团队,但由于其分布式性质,它带来了新的挑战.例如,在业务交易过程中出现问题的情况下,需要端到端跟踪请求,该请求可能跨越多个服务和基础架构. 解决问题时可能遇到的挑战有: 管理已知和未知故障 故障也是分布式的 传统监控系统不适用 这是可监测性和可观察性出现的地方.可监测性记录应用程序的总体运行状况,而可观察性则可以帮助您更深入地了解上下文数据.在.NET大会上,我和…
前言 本节我们再来讲讲EF Core,本节算是回归基础吧,当前项目EF Core还是处于1.1版本中,后续等待.net core等版本稳定了全部会更新到2.0版本中,到时再来更新相关文章分享给大家. 相关数据加载 在EF中一直以来都是通过导航属性来加载一个实体的相关数据,在EF Core中加载相关数据有以下三种模式: 饥饿加载 来自数据库相关联数据的加载也会作为实体的一部分进行加载. 我们通过Include方法来进行饥饿加载实体相关联的数据,如下: using (var context = ne…
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity 访问MySQL数据库 ASP.NET Core MVC 使用 EF Core + 原生SQL访问MySql数据库 EF Core + MySQL数据库插入数据后获取自增列的值 Entity Framework Core简称为 EF Core 2.本教程环境信息 软件/环境 说明 操作系统 Windows 1…
前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用着却发现了一点问题,于是下班回来到写这篇博客到深夜才正式解决,请往下看. 3DES数据加密 由于数据需要获取出来并显示于是只能使用对称加密,关于加密这一块网上对于.NET Framework的实现数不胜数,好像对于.NET Core这一块比较少,于是就开始进行研究.这个时候就利用DES或者Tripl…
摘要 在开发中,使用EF code first方式开发,那么如果涉及到数据表的变更,该如何做呢?当然如果是新项目,删除数据库,然后重新生成就行了,那么如果是线上的项目,数据库中已经有数据了,那么删除数据库重新生成就不行了,那么该如何解决呢?Ef提供了一种数据迁移的操作.具体该如何操作呢. 数据迁移步骤 开发环境 vs2017+Mysql 这里以web为例.具体该如何操作. 1.新建一个web应用. 发现Asp.Net Core站点,项目结构又有变化,项目结构如下: 发现这里吧wwwroot又移到…
ef core在针对mysql数据迁移的时候,有些时候没法迁移...有两种情况没法迁移,一种是因为efcore的bug问题导致没法迁移,这个在github上有个问题集,另外一种是对数据表进行较大幅度的变更,导致外键导航之类的变更较多,无法正常迁移,并且涉及到该表的迁移有多条. 然后我就自己琢磨,在不删除所有迁移记录的情况下怎么顺利把数据表更改掉,然后摸索了一阵,确实成功了,步骤如下. 1.先把表备份后,删除这个表.2. 在migration记录表中,涉及到该表的迁移全部删除.3. 删除迁移记录中…
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity 访问MySQL数据库 ASP.NET Core MVC 使用 EF Core + 原生SQL访问MySql数据库 EF Core + MySQL数据库插入数据后获取自增列的值 Entity Framework Core简称为 EF Core 2.本教程环境信息 软件/环境 说明 操作系统 Windows 1…
ComponentOne .NET开发控件集 2019V2正式发布,除持续完善并加入全新的.NET开发控件外,还针对产品架构稳定性.易用性.与.NET Core平台深度集成.已有控件功能增强等多个方面进行优化,以满足 .NET.移动端和 Web 应用系统的全部项目开发需求. ComponentOne是一套专注于企业.NET开发.支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,可满足 WinForm.WPF.ASP.N…
用好数据映射,MongoDB via Dotnet Core开发变会成一件超级快乐的事.   一.前言 MongoDB这几年已经成为NoSQL的头部数据库. 由于MongoDB free schema的特性,使得它在互联网应用方面优于常规数据库,成为了相当一部分大厂的主数据选择:而它的快速布署和开发简单的特点,也吸引着大量小开发团队的支持. 关于MongoDB快速布署,我在15分钟从零开始搭建支持10w+用户的生产环境(二)里有写,需要了可以去看看.   作为一个数据库,基本的操作就是CRUD.…
重要概念 Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台的数据访问技术,它还是一 种对象关系映射器 (ORM),它使 .NET 开发人员能够使用面向对象的思想处理数据库,它消除 了开发人员通常需要编写大量数数据访问代码的需要. 系统必备 EF Core 是一个 .NET Standard 2.0 库,因此它能够在其它平台使用. 安装 .NET Core SDK 即可使用. EF Core 可以在 Xamarin 和 .NET Native 等其他 .NET…
1 前言 本文致力于将一种动态数据过滤的方案描述出来(基于 EF Core 官方的数据筛选器),实现自动注册,多个条件过滤,单条件禁用(实际上是参考ABP的源码),并尽量让代码保持 EF Core 的原使用风格. 1.1 本文的脉络 会在一开始,讲述数据过滤的场景以及基本的实现思路. 随后列出 EF Core 官方的数据查询筛选器例子. 最后将笔者的方案按功能(自动注册,多个条件过滤,单条件禁用)逐一实现出来. 1.2 数据过滤的场景 一般我们会有这样的场景,可能需要数据过滤: 软删 多租户 通…
原文:Unifying DbContexts for EF Core / Removing the EF Core Migrations Project 目录 导读:软件开发的一切都需要平衡 动机 警告 步骤 第一步:添加 Microsoft.EntityFrameworkCore.Tools 包到 EntityFrameworkCore 项目 第二步:创建设计时 DbContext 工厂 第三步:创建 数据库模式迁移器 第四步 转移数据库实体映射配置 第五步:从解决方案中移除 EntityFr…
1.RDD 全称 弹性分布式数据集 Resilient Distributed Dataset它就是一个 class. abstract class RDD[T: ClassTag](    @transient private var _sc: SparkContext,    @transient private var deps: Seq[Dependency[_]]  ) extends Serializable with Logging { 继承了 Serializable 和具有 L…
.NET Core WebApi RESTful规范 RESTful API 最佳实践 理解RESTful架构 接口版本控制 Support multiple versions of ASP.NET Core Web API ASP.NET Core API 版本控制 配置使用流程 使用方法 Startup类ConfigureServices方法中加入services.AddApiVersioning() Startup类Configure方法中加入app.UseApiVersioning()…
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中: (1)volumes:Docker管理宿主机文件系统的一部分,默认位于 /var/lib/docker/volumes 目录中:(最常用的方式…
.net core 拦截器的使用 实例代码:https://gitee.com/D_C_L/InterceptorTest.git 拦截器主要是将程序中的一些可以独立出去的模块进行拦截,比如幕等性,和身份认证服务等等,你想独立出去的东西,ActionFilterAttribute请求拦截器他里面几个方法,我们将一下的几个方法进行重写. 1,OnActionExecuting:在执行请求开始之前进行调用 2,OnActionExecuted:在执行请求开始之后进行调用 3,OnResultExec…
参考资料 core concepts 正文 1. 并发性 xapian不包含任何全局变量,所以多线程编程中,在没有共享资源的情况下可以安全使用xapian.在实际操作中,由于每个线程都可以创建自己的xapian.Database对象,所以这个限制条件完全没有问题.当然如果真的需要在多线程中使用同一个xapian对象,则需要用到mutex的线程锁. 需要注意的是,有些xapian对象包含了其他对象的引用——例如,xapian.Database.get_document()的结果xapian.Doc…
企业是使用Memcached还是选Redis? 在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应用程序的性能表现进行提升时,缓存机制往往是解决问题的重要起点,而Memcached与Redis则经常被作为初步方案来加以比较. 这两套声名显赫的缓存引擎拥有着诸多相似之处,但它们同样也具备大量显著差异.作为二者当中更年轻也更加灵活的方案,Redis被大部分技术人员视为首选目标--但请别掉以轻心,不容忽视的重要…
前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也是一直没想好本篇应该怎样写比较容易理解,于是就一天一天的拖着了.废话不多说,言归正传. EF的CodeFirst是个好东西,让我们完全不用考虑数据库端(注意,这里并不是说不需要对数据库知识进行了解),一切工作都可以通过代码来完成.EF是ORM,已经把数据访问操作封装得很好了,可以直接在业务层中使用,…
Hadoop原理 分为HDFS与Yarn两个部分.HDFS有Namenode和Datanode两个部分.每个节点占用一个电脑.Datanode定时向Namenode发送心跳包,心跳包中包含Datanode的校验等信息,用来监控Datanode.HDFS将数据分为块,默认为64M每个块信息按照配置的参数分别备份在不同的Datanode,而数据块在哪个节点上,这些信息都存储到Namenode上面.Yarn是MapReduce2,可以集成更多的组件,如spark.mpi等.MapReduce包括Job…
一.前言 为了运行summingbird demo,笔者走了很多的弯路,并且在国内基本上是查阅不到任何的资料,耗时很久才搞定了demo的运行.真的是一把辛酸泪,有兴趣想要研究summingbird的园友且听笔者一一道来,大体可以将summingbird理解为Storm + Hadoop. 二.大数据处理快速预览 大数据时代的来临,将大数据处理分为了批量处理与实时处理两个方向,批量处理的优势在于容错性好,因为数据时先存在本地或者是分布式的进行存储,可以重复对数据进行处理,劣势在于速度慢,要等到数据…
     一般的网站应用中,总会有部分二次数据(处理过的原始数据)展现给前台,比如,拿购物网站来说,购买进口奶粉最多的用户群体:哪类产品消费增长趋势最旺盛:用户的消费历史归类等都是二次数据.由于这部分数据通常是分析后的数据,而且实时性不强,因此这个过程通常是通过离线计算得到.为了展现给前台,需要将这部分数据回流到关系型数据库[离线计算集群一般都是KV存储,不支持SQL],供前端用户查询.       对于MYSQL而言,数据回流实质就是通过mysqlimport或load data infile…
2013年12月5日-6日参加了为期两天的2013中国大数据技术大会(Big Data Technology Conference, BDTC2013),本期会议主题是:“应用驱动的架构与技术 ”.大数据概念最近真是火得不行,从大会多达7个的“大数据架构与系统”.“大数据技术”.“大数据应用”.“大数据研究与发展”.“大数据基准测试”“智能交通与大数据”以及“传统行业如何驾驭大数据”主题论坛,再到现场爆棚的人群,可见大家拥抱大数据的高涨热情. 在9月份读完了一本<大数据时代>,后面又听大学老师…