MyDAL - .UpdateAsync() 使用】的更多相关文章

索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 // update 要赋值的变量 var time = DateTime.Now.ToString(); var propertyVal = "{xxx:yyy,mmm:nnn,zzz:aaa}"; // 使用 SetSegment 动态 拼接 set field 起点 var set = Conn.Updater<Body…
索引: 目录索引 一.API 列表 1.Set<M, F>(Expression<Func<M, F>> propertyFunc, F newVal) 如: .Set(it => it.BodyMeasureProperty, "{xxx:yyy,mmm:nnn,zzz:aaa}") 用于 单表 指定字段更新 2.Set<M>(dynamic filedsObject) 用于 单表 指定多字段更新 二.API 单表-完整 方法 举…
索引: 目录索引 一.API 列表 1.UpdateAsync() 用于 单表 更新操作 二.API 单表-便捷 方法 举例-01 var pk1 = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d"); // 修改一条数据: AlipayPaymentRecord var res1 = await Conn.UpdateAsync<AlipayPaymentRecord>(it => it.Id == pk1,//w…
索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; 2.准备好一个 IDbConnection 对象,目前支持 MySQL / SQL Server ,后续会支持  Oracle / Postgre SQL ... 等等: 以 MySQL 为例,如下: var Conn= // 最好在 using(var Conn=...) 中使用,或使用完毕后Conn…
索引: 目录索引 一.API 列表 .DeepClone() 用于 Model / Entity / ... ... 等引用类型对象的深度克隆 特性说明 1.不需要对对象做任何特殊处理,直接 .DeepClone() 即可得到该对象的深度克隆 2.不受对象层次深度限制,均可实现深度克隆(下面会给出几个简单示例 ... ...) 二.API 使用 1.命名空间,只需: using MyDAL.ModelTools; 2.被深度克隆的对象只需是一个 class ,如下: public class M…
索引: 目录索引 一.组件特性简介: 1.MSIL 底层代码采用 System.Reflection.Emit.Lightweight 类库使用 IL 的方式处理 Model 组装,性能刚刚的~ 2.API 大量使用 System.Linq.Expressions 方式,强类型,对程序员编码非常友好~ 3.借鉴 本人精通 MyBatis / CtripDAL / Dapper / EntityFramework Core 四个 ORM 框架,所以大量借鉴它们的优点~~ 二.工程项目-适用范围 M…
索引: 目录索引 一.API 列表 1.Where .Where(Func<M, bool> func) 如: .Where( it => (it.Prop1>=条件1 && it.Prop2<=条件2) || it.Prop3==条件3 ) 此类写法, 用在 Deleter/Updater/Queryer(单表) 中. .Where(Func<bool>) 如: .Where( () => m1.PropX==条件1 || m2.PropY…
索引: 目录索引 SQL Debug 信息说明 一. 对 XConnection 对象 未开启 OpenDebug, 在 VS  状态下,将默认在 VS 窗口 打印出 参数化的 SQL 执行语句: 新增: var m1 = new BodyFitRecord { Id = Guid.Parse("1fbd8a41-c75b-45c0-9186-016544284e2e"), CreatedOn = DateTime.Now, UserId = Guid.NewGuid(), BodyM…
索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 var userId = "08d6036b-0a7e-b07d-b9bd-af03841b3baa"; var firstName = "伏"; var where = Conn.Queryer<Agent>().WhereSegment; // 根据条件…
索引: 目录索引 一.API 列表 C# 代码中 接口 IList.Contains() 方法生成 SQL 对应的 in(val1,val2,... ...) 如:.Queryer<Agent>() ... ... .Where(it => new AgentLevel?[] { AgentLevel.CityAgent, AgentLevel.DistiAgent }.Contains(it.AgentLevel)) ... ... 用于 单表 in 条件 .Queryer(out A…
索引: 目录索引 一.API 列表 C# 代码中 String.Contains("conditionStr") 生成 SQL 对应的 like '%conditionStr%' 如:.Queryer<Agent>() ... ... .Where(it => it.PathId.Contains("~00-d-3-1-")) ... ... 用于 单表 like 条件 .Queryer(out Agent agent1, out AgentInv…
索引: 目录索引 一.API 列表 C# 代码中 instance.property == null 生成 SQL 对应的 is null : 如:.Queryer<Agent>() ... ... .Where(it => it.CrmUserId == null) ... ... 用于 单表 is null 条件 .Queryer(out Agent a5,out AgentInventoryRecord r5) ... ... .Where(() => a5.ActiveOr…
索引: 目录索引 一.API 列表 .IsExistAsync() 用于 单表 / 多表连接 查询 二.API 单表-便捷 方法 举例 1.单表-便捷, 判断是否存在方法 var date = DateTime.Parse("2018-08-20 20:33:21.584925"); var id = Guid.Parse("89c9407f-7427-4570-92b7-0165590ac07e"); // 判断 AlipayPaymentRecord 表中是否存…
索引: 目录索引 一.API 列表 .QueryListAsync() .QueryListAsync<M>() 如: .QueryListAsync<AgentInventoryRecord>() , 用于 单表/多表连接 查询. .QueryListAsync<VM>() 如: .QueryListAsync<AgentVM>() , 用于 单表 查询. .QueryListAsync<T>(Expression<Func<M,…
索引: 目录索引 一.API 列表 .QueryOneAsync() .QueryOneAsync<M>() 如: .QueryOneAsync<Agent>() , 用于 单表/多表连接 查询. .QueryOneAsync<VM>() 如: .QueryOneAsync<AgentVM>() , 用于 单表 查询. .QueryOneAsync<T>(Expression<Func<M, T>> columnMapFu…
在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目的添加,附带实现模块列表功能,并将业务逻辑层的功能都实现了异步方法. 先来个完成后的界面吧. 一.业务逻辑层异步方法 .net Core中异步方法很简单,只需要Task.async.await三个关键字就行.比如要实现统计记录数异步方法,只要给方法添加关键字async,然后返回Task类型,并在方法…
平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill 上一篇文章:Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示 官方地址:https://github.com/StackExchange/dapper-dot-net/tree/master/Dapper.Contrib 实战案例:https://github.com/dunitian/LoTCode/tr…
原文: Testing Controller Logic 作者: Steve Smith 翻译: 姚阿勇(Dr.Yao) 校对: 高嵩(Jack) ASP.NET MVC 应用程序的控制器应当小巧并专注于用户界面.涉及了非 UI 事务的大控制器更难于测试和维护. 章节: 为什么要测试控制器 单元测试 集成测试 在 GitHub 上查看或下载示例 为什么要测试控制器 控制器是所有 ASP.NET Core MVC 应用程序的核心部分.因此,你应当确保它们的行为符合应用的预期. 自动化测试可以为你提…
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之11.ABP领域层——仓储(Repositories) ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由台湾-小张提供翻译 仓储定义:“在领域层和数据映射层的中…
文档目录 本节内容: 默认仓储 自定义仓储 自定义仓储接口 自定义仓储实现 基仓储方法 查询 获取单个实体 获取实体列表 关于 IQueryable 自定义返回值 插入 更新 删除 其它 关于异步方法 管理数据库连接 一个仓储的生命周期 仓储最佳实践 领域和映射层之间的媒介使用一种类似集合的接口来访问实体.通常地,每个实体(或聚合根)使用一个分离的仓储. 默认仓储 在ABP里,一个仓储类实现IRepository<TEntity,TPrimaryKey>接口.ABP默认地为每个实体类型自动创建…
在使用 EF 的时候,EntityFramework.Extended 的作用:使IQueryable<T>转换为update table set ...,这样使我们在修改实体对象的时候,避免先查询再修改,而是直接 Update,大致写法: IQueryable<Entity> entities = _entityRepository.GetAll(); entities = entities.Where(x => x.Id == 1); await entities.Upd…
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.Entity; using System.Data.Entity.Core.Objects; using System.Data.Entity.Infrastructure; using System.Data.Entity.Migrations; using System…
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网")个人空间发布过一些与编程和开发相关的文章.从入行到现在,我至始至终乐于与网友分享自己的所学所得,希望会有更多的同我一样的业内朋友能够在事业上取得成功,也算是为我们的软件事业贡献自己的一份力量吧,这也是我在博客园建博客时候的愿景:专业.求是.解惑.因此,我在撰写博客文章的时候,都是以客观严谨的态度来阐述技术知…
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来创建仓储类Repository 并且引入 UnitOfWork 我对UnitOfWork的一些理解  UnitOfWork 工作单元,对于这个的解释和实例,网上很多很多大神之作,我在这就不班门弄斧了,只是浅谈 一下个人理解,不一定对,希望大家指正: UnitOfWork 看了很多,个人理解就是 统一事务,在很多操作中我们可能是进行多项操作的,比如 同时保存两个表的数据,如果我们先保存一个表(SaveChanges…
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些与编程和开发相关的文章.从入行到现在,我至始至终乐于与网友分享自己的所学所得,希望会有更多的同我一样的业内朋友能够在事业上取得成功,也算是为我们的软件事业贡献自己的一份力量吧,这也是我在博客园建博客时候的愿景:专业.求是.解惑.因此,我在撰写博客文章的时候,都是以客观严谨的态度来阐述技术知识,并尽可…
返回总目录 本篇目录 IRepository接口 查询 插入 更新 删除 其他 关于异步方法 仓储实现 管理数据库连接 仓储的生命周期 仓储最佳实践 Martin Fowler对仓储的定义 位于领域层和数据映射层之间,使用类似集合的接口来访问领域对象. 在实践中,仓储是执行领域对象(实体和值对象)的数据库操作.一般地,一个分离的仓储用于一个实体(或者聚合根). IRepository接口 在ABP中,一个仓储类应该实现一个IRepository接口.为每一个仓储定义一个接口是一个好的做法. 一个…
返回<Module Zero学习目录> 概览介绍 如何开启 管理语言 管理本地化文本 概览介绍 ABP定义了一个健壮的UI本地化系统,它可用于服务端和客户端.它允许在不同的资源中(Resource文件和XML文件是两种预定义的资源)轻松地配置应用语言以及定义本地化文本(字符串). 虽然这对于大多数情况是没问题的,但是我们可能想要将语言和文本动态地定义到数据库中.Module-zero允许我们动态地管理每个租户的应用语言和文本. 如何开启 启动模板 如果你是从ABP官网的启动模板创建的项目,那么…
回到目录 返回异步与并行目录 在写完仓储接口的改造改造后,总觉得有个代码的坏味道,这种味道源于它的DRP,即重复的代码太多了,即异步操作和同步操作其实只是在insert,update和delete上有所不同,获取数据的方法都是一样的,所以,我最后决定,将异步的接口进行改造,让它更加合理,方法后都加上Async的后缀,看上去也更像是个异步方法,呵. 改造后的异步接口 /// <summary> /// 异步操作 /// 基础的数据操作规范 /// 与ORM架构无关 /// </summar…
回到目录 仓储大叔,只要是持久化的东西,都要把它和仓储撤上关系,为啥,为的是开发人员在使用时统一,高可用及方便在各种方式之间实现动态的切换,如ef与redis和mongoDB的切换,你完成可以通过IRepository接口再配合IOC来实现,方便致极! 之间写过一个redis仓储和xml仓储,感兴趣的同学可以先去看看,呵呵. MongoDB在实现仓储时,先要知道一些概念,即它的一些connectionstring,即连接串 <connectionStrings> <add name=&q…
回到目录 上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是跟着.net走的正方向,大事所趋,但有时,我们的前台已经使用同步方式实现了,为了不改变前台代码,所以,后台的异步版本可能不是我们所需要的,所以,我们需要将它进行一些改造,把异步改为同步,即主线程等待异步方法执行结束后,再进行下面的代码,这样,可以保证方法的正确性. 由于insert,update,d…