1.简介 每个上下文实例都有一个ChangeTracker,它负责跟踪需要写入数据库的更改.更改实体类的实例时,这些更改会记录在ChangeTracker中,然后在调用SaveChanges时会被写入数据库中.此数据库提供程序负责将更改转换为特定于数据库的操作(例如,关系数据库的INSERT.UPDATE和DELETE命令). 2.基本保存 了解如何使用上下文和实体类添加.修改和删除数据. 2.1添加数据 使用DbSet.Add方法添加实体类的新实例.调用SaveChanges时,数据将插入到数…
asp.net core+ef core 官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一下实现的效果…
在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Caching 我理解是在内容中实现,这种方法适用于单服务器的生产环境. 2.a Distributed Cache 分部式缓存实现. 3.Response Cache 这种方式我理解为客户端缓存. 今天我只用了第一种实现方法,内存中缓存,之所以用这种方法我是觉得我这里用缓存的初衷是为了减少访问数据库的次数,…
Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本) 原创 2016年07月22日 10:33:51 23125 6月随着.NET CORE PREVIEW2的发布,JUCHEAP 的CORE版本也由之前的JuCheap Core 1.0升级到了JuCheap Core 2.0,并且已经在将core版本应用到了生产环境中,现在支持的数据库库有SQL SERVER 2008以上,以及SQLITE; 部署到ubuntu16.04下的效果如…
原文:asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密. GitHub demo https://github.com/zhanglilong23/Asp.NetCore.Demo 本项目使用中间件拦截请求数据,并对请求数据解密. 访问接口成功后拦截返回数据,然后将返回数据加密后返回. 其中log4net部分不再赘述(demo中有介绍) 将Post方法中Body中的数据进行AES解密 将返回数据进行AES加密 1:自定义中间件,并默认实现Invoke方法. 附带使用日…
今天 无意看到Asp.net Core中使用Session ,首先要使用Session就必须添加Microsoft.AspNetCore.Session包,默认Session是只能存去字节,所以如果你想存取string的,那么还的引入Microsoft.AspNetCore.Http.Extensions包,那么在Startup.cs的ConfigureServices方法里面添加      services.AddSession(); (在 services.AddMvc()之前),在Conf…
今天做一个管理后台菜单,想着要用无限极分类,记得园子里还是什么地方见过这种写法,可今天找了半天也没找到,没办法静下心来自己写了: 首先创建节点类(我给它取名:AdminUserTree): /// <summary> /// 无限极节点类 /// </summary> public class AdminUserTree { /// <summary> /// 节点信息 /// </summary> public int NodeID { get; set;…
首先创建Asp.net Core项目,然后通过 NuGet 安装 EntityFrameworkCore: Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools (相关工具) 1.根据数据库生成Entity类:Scaffold-DbContext "Server=ip;Database=dbName;User id=sa;Password=xxx;" Microsoft.EntityFra…
1.简介 使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序.使用迁移(Migrations)基于数据模型创建数据库,你可以在Windows上使用Visual Studio 2017 PowerShell或在Windows.macOS或Linux上使用.NET Core CLI来学习创建数据库. 2.创建新项目 2.1系统必备 在创建新项目之前都要检查是否安装以下软件:●具有以下工作负载的Visual Studio 2017 15.7版或…
在项目中经常遇到一些数据的修改,很多时候业务方需要一个修改日志记录,这里我们计划用mssql数据库来存放日志记录,用EF来操作,记录日志可以用mvc的ActionFilterAttribute 来完成也可以用AOP来完成.以前在asp.net的AOP用的是IMessageSink这里我们计划用Castle.DynamicProxy来完成. 准备工作: 创建数据库表: CREATE TABLE [dbo].[logs]( [Id] [,) NOT NULL, [Title] [nvarchar](…
虽然该方法不会用在实际开发中,但该过程对于初学者还是非常友好的,真应了麻雀虽小,五脏俱全这句话了.好了不多废话了,直接开始!! 1.建立一个名为test的Asp.net core web应用程序 这一部分的目的是建立项目,并使用MVC框架. 2.导入依赖项(sqlite数据库 与 EF core) 这一部分的操作目的是可以让我们的项目可以使用操作数据库的一些功能. Microsoft.EntityFrameworkCore.Sqlite Microsoft.EntityFrameworkCore…
CreateData­baseIfNotExists等之前的API已经废弃,现在采用的是微软封装好,简化.高效的API,migrations 因为,旧API,要付出高昂的代价,以及局限性 打开VS2017,选择工具->NutGet包管理器->程序包管理器控制台 1.输入Add-Migration MyFirstMigration 指令 就会根据当前的dbcontext自动生成Migrations文件夹及文件,这些文件用于新建.或者扩展专属于Migrations 这个API的扩展的数据库 然后在…
// 引用 using Microsoft.EntityFrameworkCore; // 摘要: // Specifies related entities to include in the query results. The navigation property // to be included is specified starting with the type of entity being queried (TEntity). // Further navigation pr…
1.关系 关系定义两个实体之间的关系.在关系型数据库中,这由外键约束表示. 2.术语定义 有许多术语用于描述关系:●相关实体:这是包含外键属性的实体.有时称为关系的"子级".●主体实体:这是包含主/备用键属性的实体.有时称为关系的 "父项".●外键:依赖实体中的属性,用于存储与实体相关的主体键属性的值.●主体密钥:唯一标识主体实体的属性.这可能是主键或备用密钥.●导航属性:在主体和/或从属实体上定义的属性,该属性包含对相关实体的引用.●集合导航属性:一个导航属性,其…
Asp.net Core 由于依赖注入的广泛使用,配置数据迁移,与Asp.net大不相同,本篇介绍一下Asp.net Core添加数据迁移的过程 添加Nuget包 Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.EntityFrameworkCore.Design 首先新建一个…
1 前言 在程序中,需要进行数据验证的场景经常存在,且数据验证是有必要的.前端进行数据验证,主要是为了减少服务器请求压力,和提高用户体验:后端进行数据验证,主要是为了保证数据的正确性,保证系统的健壮性. 本文描述的数据验证方案,是基于官方的模型验证(Model validation),也是笔者近期面试过程中才得知的方式[之前个人混淆了:模型验证(Model validation)和 EF 模型配置的数据注释(Data annotation)方式]. 注:MVC 和 API 的模型验证有些许差异,…
Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); services.AddMvc() .AddJsonOpti…
标题:从零开始实现ASP.NET Core MVC的插件式开发(五) - 使用AssemblyLoadContext实现插件的升级和删除 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11395828.html 源代码:https://github.com/lamondlu/DynamicPlugins 前景回顾: 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图 从零…
在我们的业务中不可避免要与第三方的系统进行交互,调用他们提供的API来获取相应的数据,那么对于这样的情况该怎样进行处理呢?下面就结合自己对接跨越速运接口来获取一个发运单完整的物流信息为例来说明如何在Asp.Net Core中通过代码实现.当然在他们的官方网站上面会给出具体的API调用方式以及参数格式,作为调用方只需要根据相应规则来进行编码即可,下面以我们查询某一个具体的发运单的物流信息为例来进行说明. 下面以一个查询路由详细信息为例来进行说明.当前接口主要包括:1 概述. 2 系统参数. 3 …
asp.net core集成了非常方便的数据绑定和数据校验机制,配合操作各种easy的vs,效率直接高到飞起. 通过自定义验证特性(Custom Validation Attribute)可以实现对于数据校验规则的极大扩展. 最近在写前后端自定义验证的时候,尝试换了一种思路,这里做简单记录: > 一般而言,我们在自定义一个验证特定的时候,会继承ValidationAttribute > 之后如果只 override bool IsValid(object value) 则仅实现后端校验,无法实…
在本文中,我们将学习如何在ASP.NET Core中集成和使用HttpClient.在学习不同HttpClient功能的同时使用Web API的资源.如何从Web API获取数据,以及如何直接使用HttpRequestMessage类来实现这些功能.在以后的文章中,我们将学习如何发送POST.PUT和DELETE请求,以及如何使用HttpClient发送PATCH请求. 要下载源代码,可以访问https://github.com/CodeMazeBlog/httpclient-aspnetcor…
1.查询生命周期 在进入正题时候,我们先来了解EF Core查询的生命周期. 1.1LINQ查询会由Entity Framework Core处理并生成给数据库提供程序可处理的表示形式(说白了就是生成给数据库可识别数据形式). ●发送的查询结果(查询表示形式)会被缓存,以便每次执行查询时无需进行1.1中处理. 1.2查询结果(查询表示形式)会传递到数据库提供程序 ●数据库提供程序会识别出查询的哪些部分可以在数据库中求值.●查询的这些部分会转换为特定数据库的查询语言(例如,关系数据库的T-SQL)…
官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一下实现的效果…
1.什么是Fluent API? EF中内嵌的约定将POCO类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方法,这两种方法是用来配置EF在映射属性时绕开约定.Code first fluent API最常访问通过重写OnModelCreating方法在派生DbContext. 2.包含属性和排除属性 按照约定,数据模型中都包含一个getter和一个setter公共属性. 2.1包含属性 包含属性官网解释有点难以理解,我…
1.简介 一般而言,本部分中的配置适用于关系数据库.安装关系数据库提供程序时,此处显示的变为可用扩展方法(原因在于共享的Microsoft.EntityFrameworkCore.Relational包). 2.表映射 表映射标识在数据库中哪张表应该进行内容查询和保存操作. 2.1约定 按照约定,每个实体将设置为映射到名称与DbSet<TEntity> 属性(公开派生上下文中的实体)相同的表中.如果给定DbSet<TEntity>实体中不包含,则使用类名称. 2.2数据注释 可以使…
创建一个项目 通过Nuget获取EF Core相关的扩展包 appsettings.json 建立数据库连接串 创建数据库上下文EntityDbContext类,用于实体类映射数据库表 使用包管理器控制台工具,输入命令启用数据迁移 Add-Migration InitialCreate 创建迁移 Update-Database 更新数据库 Script-Migration 生成 SQL 脚本 Remove-Migration 删除迁移…
主要参考微软官方文档 https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db Microsoft .NET Framework 的安装这里不再赘述,大家开发机器上一般4.0.4.5都有 里面用到 powershell 命令行,powershell 版本必须是3.0或者以上,2.0会报错,请先升级 powershell 版本 版本太低,报错信息如下 The Entity Framework Core P…
1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符,可根据每个源的键选择器连接两个数据源,并在键匹配时生成值的元组. var query = from blog in _context.Set<Blog>() join post in _context.Set<Post>() on blog.BlogId equals post.Blo…
Install EF Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools –Pre 创建模型 创建Blog,Post模型 namespace EFGetStarted.AspNetCore.NewDb.Models { public class BloggingContext : DbContext { public Blogging…
1.必需和可选属性 如果实体属性可以包含null,则将其视为可选.如果属性的有效值不可以包含null,则将其视为必需属性.映射到关系数据库架构时,必需的属性将创建为不可为null的列,而可选属性则创建为可以为null的列. 1.1约定 按照约定,.NET 类型可以包含null的属性将配置为可选,而.NET类型不包含null的属性将根据需要进行配置.例如,具有.net值类型(int.decimal.bool等)的所有属性都是必需的,而具有可为null的.net值类型(int?.decimal?.b…