C# 初学DTO,遇到与网友同样的问题,求大神解决。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 初学DTO,遇到与网友同样的问题,求大神解决。相关的知识,希望对你有一定的参考价值。
最近想研究下DTO层的作用,基本的用处和用法都掌握了
但是搞不明白具体要怎么用。。
我看了一些资料说用ORM会把DO和PO整合在一起,所以不用单独手动建立,然后在大部分情况下DTO也可以作为VO用,所以也不一定有必要再为UI层建立一个VO直接用DTO即可。
问题:
1.比如说UI层需要展示一个用户列表,这个用户列表不显示密码属性,所以DTO可以不添加密码属性,这是查询用。但是如果要创建用,我查了下也不建议再额外增加一个DTO,而是建立一个万用的DTO,查询的时候不返回密码,创建的时候可以用。那这个要怎么建立?我只能想到在查询的时候手动给密码属性赋空值,这样前台也接收不到密码,但是依然会附带一个Password的属性名过去。。这个时候该怎么处理这个问题呢?
2.DTO的作用之一是避免实体类结构暴露出去,避免用户绕过Service层直接操作,虽然这句话我不太理解但是听人说DTO层的属性名和实体类的属性名要不一样,那在做映射转换的时候,比如我用AutoMapper,要为每一个需要映射转换的属性加一句
map.ForMember(d => d.Country, opt => opt.MapFrom(s => s.CountryName));
是不是太麻烦了?
DTO在.net里本身不是应用很广的吧? 学习方法最好是看一些示例照模画样
为何不用EF?真的已经领会EF的精髓和遇到其缺陷了吗
为何要用所谓的AutoMapper
Java中ArrayList的向上转型问题(父类与子类的关系),求大神解决
在Java编程中,有两个类,FatherClass与ChildClass,其中FatherClass是ChildClass的父类。
现有问题如下:
FatherClass object= new ChildClass();
这句话肯定没有问题,这个属于向上转型问题,但是下面的这句写法却报错,无法向上转型,请问为什么呢?如何解决呢?
ArrayList<FatherClass> object = new ArrayList<ChildClass>();
===============
求大神解决
如果想这样使用 可以使用 extends 关键字来限制泛型参数的适用范围
List<T extends Collection> 表示泛型实际参数可以是所有实现了 Collection接口的类,如list,set等。
所以你这个就这样写
ArrayList<? extends FatherClass> object = new ArrayList<ChildClass>();
代表泛型参数可以是FatherClass或者其子类 参考技术A 这个是java里面典型的一个问题:FatherClass和ChildClass是父子类关系,但ArrayList<FatherClass> 和 ArrayList<ChildClass>不是父子类关系,ArrayList,vector,list,linkedlist,hashmap,hashset等都是这个原则。这些泛型类都是不存在继承关系的!记住这个原则就行了 参考技术B 这是因为 泛型 是一个 编译欺骗 方式
所谓编译欺骗 是: 你写的代码 和 机器看到的代码是不一样的
泛型的 编译欺骗 是 在调用时 强转,你这样写 编译器 无法确认你 ArrayList 中装的具体类型是什么,无法强转的,使用 泛型的话 前后一定要统一
因为 编译器 并不知道 你后面的 类型 是否 是前面类型的子集 参考技术C java泛型不能这么用,泛型中实际使用类型必须一致,你这种使用方式不叫向上转型,解决方法就是
ArrayList<ChildClass> object = new ArrayList<ChildClass>();
FatherClass fs=null;
for(,i<object.size,)
fs=(FatherClass)object.get(i);
doSomeThing.....;
以上是关于C# 初学DTO,遇到与网友同样的问题,求大神解决。的主要内容,如果未能解决你的问题,请参考以下文章
C# winform OnMouseDown里使用DoDragDrop后,OnMouseClick和OnMouseUp被屏蔽了 求大神帮助解决方法
在linux下安装keepalived的时候,报错configure:error:nftables header files missing,跪求大神解决方案
C#在本机编译的程序可以正常运行,去到别的电脑报这个错误,然后下列代码在事件查看器看的。求大神解决
Vmware12安装MacOS 10.11时遇到了问题,求大神解答,一万个万分感谢!!!