ABP理论学习之实体类】的更多相关文章

返回总目录 本篇目录 实体类 惯例接口 审计 软删除 激活/未激活 IEntity接口 实体是DDD(领域驱动设计)的核心概念之一.Eirc Evans是这样描述的实体的:"它根本上不是通过属性定义的,而是通过一系列连续性和标识定义的".因此,实体都有Id属性并且都存储到数据库中.一个实体一般会映射到数据库的一张表. 实体类 在ABP中,实体派生自Entity类,看下面的例子: public class Person : Entity { public virtual string N…
首先声明,不推荐使用这种方法.实体访问仓储是不被推荐的! 1.简单粗暴的方法 Abp.Dependency.IocManager.Instance.Resolve>(); 2.绕个弯子的方法 首先声明一个继承自IDomainService的接口并定义接口方法,例如ITestService 添加接口实现类,在该构造函数中声明要访问的实体仓储相关参数 public class TestService : ITestService { private IRepository<Role> rol…
在我们项目中,由于涉及到报表配置管理,可以通过一段sql快捷的配置出一个报表页面.部分sql会与abp框架的一些系统表做关联查询,而abp的映射类没有单独设置表和字段的名称,默认用类名和属性名,区分大小写,造成写sql时需要对这些表加入双引号,不是很方便.本篇文章是修改abp.zero的实体映射类,分别为其表名和字段设定大写值. 由于我的项目还使用的是Abp.Zero.1.5.1版本,故下载了源码并对其所有实体类做了修改. 看一个截图: 我这里已经把相关的表及字段全部调整了,可直接下载调整以后的…
在EF中修改一条记录时,一般是先查出该条记录,然后再通过TryUpdateModel或其他方式更新对应的属性.但我很讨厌这种要更新一条记录时,还要先去把记录查询出来的做法.我喜欢像sql语句那样的直接更新需要更新的字段. 以前一般都是先写好数据库,再通过代码生成器生成实体类.DbContext对象等.这里没用EF的DBFirst的自动生成是因为它无法生成我想要的实体对象.举个例子,我希望的实体类大概是这样: public class User { public HashSet<string>…
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之10.ABP领域层——实体 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由深圳-Carl提供翻译 实体是DDD(领域驱动设计)的核心概念之一.Eric Eva…
返回总目录 本篇目录 IRepository接口 查询 插入 更新 删除 其他 关于异步方法 仓储实现 管理数据库连接 仓储的生命周期 仓储最佳实践 Martin Fowler对仓储的定义 位于领域层和数据映射层之间,使用类似集合的接口来访问领域对象. 在实践中,仓储是执行领域对象(实体和值对象)的数据库操作.一般地,一个分离的仓储用于一个实体(或者聚合根). IRepository接口 在ABP中,一个仓储类应该实现一个IRepository接口.为每一个仓储定义一个接口是一个好的做法. 一个…
返回总目录 本篇目录 介绍 IDomainService接口和DomainService类 样例 创建一个接口 服务实现 调用应用服务 一些讨论 何不只使用应用服务 如何强制使用领域服务 介绍 领域服务(或DDD中的服务)用于执行领域操作和业务规则.Eric Evans描述了一个好的服务应该具备下面三个特征: 和领域概念相关的操作不是一个实体或者值对象的本质部分. 接口定义在领域模型其他元素的条款中. 操作是无状态的. 跟获得或返回一个数据传输对象的应用服务方法(DTO)不同,领域服务获得或者返…
返回总目录 本篇目录 介绍 预定义过滤器 关闭过滤器 开启过滤器 设置过滤器参数 定义自定义过滤器 其他ORM 介绍 软删除模式通常用于不会真正从数据库删除一个实体而是仅仅将它标记为"已删除的".这样,如果一个实体是软删除的,那么它不应该在应用中检索到.为了实现这个目的,我们应该在每一个select实体查询操作中添加一个SQL where条件,如"IsDeleted=false".这是乏味但是很重要的一项容易忘记的任务.因此,这项工作应该自动完成. ABP提供了数据…
返回总目录 本篇目录 介绍 安装 创建控制器 例子 样例项目 介绍 OData在其官网的定义是: 允许以一种 简单且标准的方式创建和使用可查询的.可互操作的RESTful APIs. 在ABP中也可以使用OData.Abp.Web.Api.OData nuget包简化了它的使用. 安装 安装Nuget包 我们应该首先将Abp.Web.Api.OData nuget包安装到WebApi项目中: Install-Package Abp.Web.Api.OData 设置模块依赖 给我们的WebApi项…
返回总目录 本篇目录 Ajax Notification Message UI block和busy 事件总线 Logging 其他工具功能 说在前面的话 不知不觉,我们送走了2015,同时迎来了2016.我相信,每一个人,都会在过去的一年有所失,但我更相信,我们所得到的更多.过去的就过去了,不要再计较了,但要从过去的各种不顺中汲取经验,这样,在全新的2016年里继续留下2015年遗憾的概率才会大大降低!祝大家在新的一年里,代码bug越来越少! 本来给这个ABP理论学习系列的预算时间是2016年…