前言:本系列是我自己学习.net相关知识,以便跟上.net跨平台的步伐,目前工作原因基本在.net Framework4.7以下,所以才有了这一系列的学习总结,但是并不是从基本的C#语法和基础知识开始的,而是围绕.net core以后平台的重要设计和差异进行温故知新。目的在于通过要点的梳理最后串联起整个跨平台框架。之前的几篇算是把框架重要设计和框架重要知识点复习了,当然什么系统都可能使用到ORM框架。所以这里为了整个过程的完整连续性加入一个EFCore的示例,ORM不算详细写了,毕竟ORM框架可以根据需求选择很多,如果再详细那又是另外一个系列了,这里只做简单介绍。从这篇ORM完成之后就将进入asp.net core的学习总结!
ShardingCore 易用、简单、高性能、普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本,支持efcore2+的所有数据库、支持自定义路由、动态路由、高性能分页、读写分离的一款组件,如果你喜欢这组件或者这个组件对你有帮助请点击下发star让更多的.neter可以看到使用
在上一篇文章中,我们说到了《单例模式》,了解到了它的场景,也学会了它的目的,从模式类型上,我们可以知道,他是一个创建型的设计模式,说白了就是创建一个对象的实例,只不过是单例的 —— 单一实例的。
在 .Net Core 2.2中 Microsoft.AspNetCore.App 默认内置了EntityFramework Core 包,所以在使用过程中,我们无需再从 NuGet 仓库单独应用 EFCore 包;本文并不打算深入的介绍 EFCore 的各种使用方式、原理解析,本文重点在于解决让初学者在10分钟内快速使用上 EFCore 的问题。
1、我们知道,工厂模式属于创建型开发模式的一元,他的作用就是创建我们需要的对象,如果一个一个创建的话,会很麻烦,所以我们诞生出来了一个【简单工厂】,这个简单工厂只是简单的人为的把几个对象的实例给堆起来,通过type 来区分,然后分别 new 实例化,有时候也是一个很好的方案,但是这样有一个弊端,违背了我们开发六大原则中的——OCP开放关闭原则,所以这个时候,我们就又多出来一个新的概念【工厂方法】。
本框架旨在为EF Core提供Sharding(即读写分离分库分表)支持,不仅提供了一套强大的普通数据操作接口,并且降低了分表难度,支持按时间自动分表扩容,提供的操作接口简洁统一.
该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide
LearnEf.Console依赖LearnEf.Domains和LearnEf.Data:
== 注意:这里的创建数据库命令和上面创建 MariaDB/MySql 的命令有一点小小的不同 ==
《EF Core》实际上已经可以告一段落了,但是感觉还有一点点意犹未尽。所以决定分享一下,个人在实际开发中使用EF Core的一些经验和使用的扩展包。
看到这个标题,你开不开心,激不激动呢? 没错,.net core的入门课程已经完毕了。52ABP.School项目从11月19日,第一章视频的试录制,到今天完整版出炉,离不开各位的帮助和加油。 课程概述 52ABP大学例子程序演示如何使用Entity Framework(EF) Core 2.0 和 Visual Studio 2017 创建一个 ASP.NET Core 2.0 MVC web 应用。 例子是一个大学的网站。它包括了学生入学,创建课程、教师管理等功能。 我是谁? 我叫梁桐铭, 微软最有价
开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激、尊重。请严格遵守每个项目的开源协议后再使用。尊重知识产权,共建和谐开源社区。
去年时候,写过一篇《Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统》,采用Asp.net Web API + Element-UI。当时主要是为了练手新学的Vue及基于Vue的PC端前端框架Element-UI,所以文章重点放在了Element-UI上。最近,从鹏城回江城工作已三月有余,人算安顿,项目也行将上线,算是闲下来了,便想着实践下之前跟进的.net core,刚好把之前练手系统的后端给重构掉,于是,便有了此文。
在杨中科老师 B 站的.Net Core 视频教程[1]其中 DDD 部分讲到了强类型 ID(Strongly-typed-id)的概念,也叫受保护的密钥(guarded keys)当时在 .NET 中的 DDD 实现是个悬而未决的问题,之后我也一直在寻找相关的实现方案。
(1).使用 EF.Functions.Like进行模糊查询要比 StartsWith、Contains 和 EndsWith 方法生成的SQL语句性能更优。
本系列的第五篇:https://www.cnblogs.com/whuanle/p/13061059.html
在实践领域驱动设计(DDD)的过程中,我们会根据项目的所在领域以及需求情况捕获出一定数量的领域对象。设计得足够好的领域对象便于我们更加透彻的理解业务,方便系统后期的扩展和维护,不至于随着需求的扩展和代码量的累积,系统逐渐演变为大泥球(Big Ball of Mud)。
在使用 EF或者写 SQL语句时,查询条件往往是这样一种非常常见的逻辑:如果客户填了查询信息,则查询该条件;如果客户没填,则返回所有数据。
EntityFramework Core有许多新的特性,其中一个重要特性便是批量操作。批量操作意味着不需要为每次Insert/Update/Delete操作发送单独的命令,而是在一次SQL请求中发送批量组合指令。
WebAPI是一种协议,用于允许网络应用程序(如浏览器)与网络服务器(如Web服务器)之间进行通信。它可以用于处理数据,访问数据库,处理图像和视频,以及进行其他高级功能。
EF Core是我们.NET开发中比较常用的一款ORM框架,今天我们分享一款可以直接在Visual Studio中查看EF Core查询计划调试器可视化工具(帮助开发者分析和优化数据库查询性能):EFCore.Visualizer。
幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
EF Core是我们.NET日常开发中比较常用的ORM框架,今天大姚要分享的内容是如何使用EF Core Generic Repository通用仓储库来快速实现EF Core数据仓储模式。
EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。
首先还是要给自己的开原框架打个广告 sharding-core 针对efcore 2+版本的分表组件,首先我们来快速回顾下目前市面上分表下针对分页常见的集中解决方案
这几个问题还是问了一段时间后,我感觉是时候需要考虑考虑了,之前一直比较懒或者没有很好的办法去处理这个问题,其实今天的办法也不是最完美的,所以我叫思路一,如果有好的思路欢迎留言和建议,有奖励哟。
本文所需的一些预备知识可以看这里: http://www.cnblogs.com/cgzl/p/9010978.html 和 http://www.cnblogs.com/cgzl/p/9019314.html
FreeSql 发展到现在,已经有两种稳定的开发模式,以下先简单带过一下。后面才是本文的主题。
作为领域驱动设计战术模式中最为核心的一个部分-值对象。一直是被大多数愿意尝试或者正在使用DDD的开发者提及最多的概念之一。但是在学习过程中,大家会因为受到传统开发模式的影响,往往很难去运用值对象这一概念,以及在对值对象进行持久化时感到非常的迷惑。本篇文章会从值对象的概念出发,解释什么是值对象以及怎么运用值对象,并且给出相应的代码片段(本教程的代码片段都使用的是C#,后期的实战项目也是基于 DotNet Core 平台)。
检查数据库和迁移文件时发现Address这个字段被意外设置成nullable: false,而其它的字段却正常,按理来说对于string类型的属性,EFCore在codefirst模式下应该映射为可空类型。
ASP.NET Core 中的框架中发出大量诊断事件,包括当前请求进入请求完成事件,HttpClient发出收到与响应,EFCore查询等等。
前面的文章介绍了Git的基本概念和用法,本文则是基于GitHub的一个实践介绍,主要内容有:
ShardingCore 是一个支持efcore 2.x 3.x 5.x的一个对于数据库分表的一个简易扩展,当然也支持不分表的普通使用,.Net下并没有类似mycat或者sharding-jdbc之类的开源组件或者说有但是并没有非常适用的或者说个人在用过后有一些地方因为限制没法很好使用所以决定自己开发这个库,目前该库暂未支持分库(未来会支持),仅支持分表,该项目的理念是让你可以已最少的代码量来实现自动分表的实现,经过多个开源项目的摸索参考目前正式开源本项目 项目地址 github 喜欢的朋友可以点下star Thanks♪(・ω・)ノ
在上一篇文章中,我们已经了解过领域驱动设计中一个很核心的对象-聚合。在现实场景中,我们往往需要将聚合持久化到某个地方,或者是从某个地方创建出聚合。此时就会使得领域对象与我们的基础架构产生紧密的耦合,那么我们应该怎么隔绝这一层耦合关系,使它们自身的职责界限更加清晰呢?是的,这就要用到我们今天要讲的内容 - 存储库。在很多地方,我们喜欢叫它为仓储,特别是在现有的AspNetCore应用中,大量的应用都在引入Repository这种东西。那么究竟什么是存储库呢?我们现在的使用方式是正确的吗?它在领域驱动设计中又扮演着怎样的角色呢?本文将从不同的角度来带大家重新认识一下“存储库”这个概念,并且给出相应的代码片段(本教程的代码片段都使用的是C#,后期的实战项目也是基于 DotNet Core 平台)。
上个月公司上线了一个物联网数据科学项目,我主要负责前端接收设备Event,并提供模型参数下载(数据科学团队会优化参数)。WebApp部署在Azure,模型参数使用Azure SQL Server存储。
本文需要您了解ASP.NET Core MVC/Web API, xUnit以及Moq相关知识.
1. 引言 上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习,完成ASP.NET Core + MySql + Nginx的容器化部署。 本文是基于CentOS 7.4环境进行演示,示例项目可以访问Docker.NetCore.MySql进行下载。 2. Hello MySQL 同样我们还是以循序渐进的方式来展开。首先来基于Docker来试玩一下MySQL。 2.1. 创建MySql实例 下面我们直接在容器中连接到我们刚刚创建的mysql数据库: 2.2. 挂载数据卷
今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发。大伙最好跟着一起敲一下代码,当然源码我会上传到github上,有兴趣的小伙伴可以在文章底部查看源码链接。
最近听说IdentityServer4从v3升级到v4了,其实很简单,就是nuget包升级一下的事儿,不过没想到涉及到的内容还挺多,要不然也不会直接从3.1直接蹦到4.0,这么大的跨度,证明已经涉及到核心的类做了修改。
driver.js 是一个轻量级、无依赖的纯 JavaScript 引擎,用于引导用户在页面上聚焦。该项目解决了如何在网页上引导用户关注核心要素的问题。
以前写过ASP.NET Core 2.x的REST API文章,今年再更新一下到3.0版本。
4. 创建实体模型 OperateLog , 及实体映射数据库表的 OperateLogConfig
3、mysql的递增语句是AUTO_INCREMENT,而sql server是identity(1,1)
为什么突然想要写文章了呢,我是有强迫症的,目前开源了五个系列的文章,从 NetCore 到 Vue,从 Admin 到 Nuxt,然后从 DDD 到 IdentityServer4,我自认为都是贴近实战的,因为看到某些小伙伴说,应用到了公司的项目里,我也是很开心,而且 NetCore 项目的Github start 数也破千了,我感谢每一个点赞评论的小伙伴,我都是每条评论必回,每个邮件也必回:
EF Core的问题一言难尽,然后有了各种插件,批量插入扩展,批量更新扩展,查询扩展。。。然后一个项目引入一堆扩展
原文地址:https://blog.spiritling.cn/posts/daefc0a4/
设计:这里指架构分层,即应该如何分层?领域逻辑写在哪?与持久化如何交互?如何协调多对象领域逻辑?如何实现逻辑与数据存储解耦等
领取专属 10元无门槛券
手把手带您无忧上云