automapper实体中的映射和聚合根中的使用
一,如下例子:
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AutoMapper2
{
class Program
{
static void Main(string[] args)
{
//实体属性完全一致映射
Test.InitAutoMapper<ProductDto, Product>();
ProductDto userDto = new ProductDto()
{
Name = "实体映射",
Num = ,
};
//实体间的映射不区分大小写
var o = Mapper.Map<ProductDto, Product>(userDto);
var t = Mapper.Map<Product, ProductDto3>(o); //当属性命名大小写不一致时
Test.InitAutoMapper<ProductDto3, Product>();
ProductDto3 userDto3 = new ProductDto3()
{
Id = ,
Name = "实体映射",
Num = ,
Price =
};
//实体间的映射不区分大小写
var oDomain = Mapper.Map<ProductDto3, Product>(userDto3);
var te = Mapper.Map<Product, ProductDto3>(oDomain); //有DTO模式到聚合根的转换
ProductDto2 userDto2 = new ProductDto2()
{
Name2 = "实体映射",
Num2 = ,
Address = "XXX"
};
var map = Mapper.CreateMap<ProductDto2, Product>()
.ForMember(d => d.Name, opt => opt.MapFrom(x => x.Name2))
.ForMember(d => d.adress.Name, opt => opt.MapFrom(x => x.Address)); var tt = Mapper.Map<ProductDto2, Product>(userDto2); }
}
public class Test
{
public static void InitAutoMapper<DtoModel, DomainModel>()
{
var oType = Mapper.FindTypeMapFor<DtoModel, DomainModel>();
if (oType == null)
{
Mapper.CreateMap<DtoModel, DomainModel>();
Mapper.CreateMap<DomainModel, DtoModel>();
}
}
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int Num { get; set; }
public int Price { get; set; }
public Adress adress { get; set; } } public class Adress
{
public string Name { get; set; }
}
public class ProductDto
{
public string Name { get; set; }
public int Num { get; set; }
}
public class ProductDto2
{
public string Name2 { get; set; }
public int Num2 { get; set; } public string Address { get; set; }
}
public class ProductDto3
{
public int Id { get; set; }
public string Name { get; set; }
public int Num { get; set; }
public int Price { get; set; }
}
}
automapper实体中的映射和聚合根中的使用的更多相关文章
- DDD的实体、值对象、聚合根的基类和接口:设计与实现
1 前置阅读 在阅读本文章之前,你可以先阅读: 什么是DDD 2 实现值对象 值对象有两个主要特征:它们没有任何标识.它们是不可变的. 我们举个例子:小明是"浙江宁波"人,小红也是 ...
- ASP.NET Core Web API下事件驱动型架构的实现(四):CQRS架构中聚合与聚合根的实现
在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅.通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件总线的实现.接下来对于事件驱动型架构的讨论,就需 ...
- NET Core Web API下事件驱动型架构CQRS架构中聚合与聚合根的实现
NET Core Web API下事件驱动型架构在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅.通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件 ...
- DDD中聚合、聚合根的含义以及作用
聚合与聚合根的含义 聚合: 聚合往往是一些实体为了某项业务而聚类在一起形成的集合 , 举个例子, 社会是由一个个的个体组成的,象征着我们每一个人.随着社会的发展,慢慢出现了社团.机构.部门等组织,我们 ...
- 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则
目录 前言 聚合 聚合和聚合根原则 包含业务原则 单个单元原则 事务边界原则 可序列化原则 聚合和聚合根最佳实践 只通过ID引用其他聚合 用于 EF Core 和 关系型数据库 保持聚合根足够小 聚合 ...
- 从壹开始微服务 [ DDD ] 之六 ║聚合 与 聚合根 (下)
前言 哈喽大家周二好,上次咱们说到了实体与值对象的简单知识,相信大家也是稍微有些了解,其实实体咱们平时用的很多了,基本可以和数据库表进行联系,只不过值对象可能不是很熟悉,值对象简单来说就是在DDD领域 ...
- DDD之4聚合和聚合根
聚合就是归类的意思,把同类事物统一处理: 聚合根也就是最抽象,最普遍的特性: 背景 领域建模的过程回顾: 那么问题来了? 为什么要在限界上下文和实体之间增加聚合和聚合根的概念,即作用是什么? 如何设计 ...
- 基于ABP实现DDD--聚合和聚合根实践
在下面的例子中涉及Repository.Issue.Label.User这4个聚合根,接下来以Issue聚合为例进行分析,其中Issue聚合是由Issue[聚合根].Comment[实体].Iss ...
- DDD:使用EntityFramework的话,如果只为聚合根设计仓储,其它实体如何处理?
背景 DDD中只有聚合根可以有仓储,仓储负责整个聚合持久化的相关生命周期,在不使用工作单元或POCO的情况下,我们可以让Order内部直接调用DAL操作OrderItem.我们也可以让Order跟踪所 ...
随机推荐
- 2019-9-2-win10-uwp-兴趣线
title author date CreateTime categories win10 uwp 兴趣线 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17 ...
- docker初学
Docker基础知识 1. Docker基础知识点 1.1 什么是Docker Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.(集装箱原理) 1.2 什 ...
- Sass函数-值列表index
ndex() 函数类似于索引一样,主要让你找到某个值在列表中所处的位置.在 Sass 中,第一个值就是1,第二个值就是 2,依此类推: >> index(1px solid red, 1p ...
- python将文件导入字典
a={}i=0f = open("filepath","r")for line in f.readlines(): a[i] =line i=i+1 a是字典, ...
- python在mapreduce运行Wordcount程序
首先脚本文件: mapper.py: #!/usr/bin/env python import sys for line in sys.stdin: line = line.strip() words ...
- hadoop中mapreduce的mapper抽象类和reduce抽象类
mapreduce过程key 和value分别存什么值 https://blog.csdn.net/csdnliuxin123524/article/details/80191199 Mapper抽象 ...
- cornerNet部分学习内容记录
cornerNet来源灵感是基于多人姿态估计的从下往上思想,预测角的热图,根据嵌入式向量对角进行分组,其主干网络也来自于姿态估计的环面网络. cornerNet的总体框架结构图如下: CornerN ...
- 神经网络学习笔记(二):feedforward和feedback
维基百科解释: Feed-forward, sometimes written feedforward, is a term describing an element or pathway with ...
- [转]解决win10下localhost打不开的问题
博主刚开始玩Tornado,结果localhost都打不开,各种找寻解决方案,结论都是IIS服务器问题.然而win10下的解决方法居然没人写过...那就我来配图详解下. 打开控制面板--添加或删除程序 ...
- LDD3 第13章 USB驱动程序
通用串行总线(USB)是主机和外围设备之间的一种连接.最新USB规范修订增加了理论上高达480Mbps的高速连接. 从拓扑上看,USB子系统并不是以总线的方式来布置的,它是一颗由几个点对点的连接构建而 ...