本人很懒, 总是不愿意写太多的代码.
系统做久了,就会发现,对象继承有很大的好处, 省去了很多事情,
我写代码的习惯是用代码生成器生成.数据库模型类,
其它业务模型,继承自它…
当然其它业务模型多出来的字段一般都不需要保存到数据库. 也就写到了新类里面..

这样的好处就是, 数据库增加字段,代码生成器生成一下就好了. ( 归根结底还是懒啊. )
但是这样做,却有一个美中不足之处.
EF提供的功能想要把查询结果转换成另外一个Class的, 通常需要这么写.

     var d = db.WReports.Select(a=>new WSW(){Id=a.Id,Name = a.Name,......}).Take(10).ToList();

这么写, 属性多了,不胜其烦, ( 归根结底还是懒啊. )
每次增加字段还要去查一遍, 经常会漏,漏了还不容易发现问题….
不写子类WSW 的话, 代码又不好理解….容易搞混,毕竟两个对象模型不一样.
一锅粥似的万能类, 我不喜欢. 每次增加字段还要去复制黏贴一遍. 很累. 还容易忘.
所以最好的方法, 是下面这样.

   var d = db.WReports.SelectToType<WReport, WSW>().Take(10).ToList();

当然这个 SelectToType 是我自己花了2天的时间写的扩展.
想要的话.找我吧. 5块钱一份, 物美价廉, 童叟无欺, 是软件开发, 居家旅行, 同事面前吹牛B,节省开发时间 之必备神器. 值得拥有..

这个类,可不是只能查询转换成子类, 只要是两个类之间的属性名称相同的就会自动取到数值了.
性能嘛… 杠杠的… 绝对不是用反射一个一个复制的…直接修改了到数据库查询的select 语句, 不信你可以自己跟踪一下sql语句. 性能几乎跟Select()一样.

同时再附送一个SelectToType 的前身, MapTo 函数 . 仅能用于 Linq to Object 场景. 作用也是转换成子类.
就是性能不如SelectToType 快.
示例如下.

var c = db.WReports.Take(10).ToList().MapTo<WReport,WSW>().ToList();

想要的,请直接付款, 留下邮箱地址. 受到款会把源代码发过去… 最近比较穷, 请谅解…

C# EF查询结果转换成子类 SelectToType相关推荐

  1. java 用户自定义的父类转换成子类的方法

    在工作中,一般是实体类对应的数据库表,另外再定义一个Model继承实体类,在model里往往添加一些辅助的属性.我们从数据库查出的数据放在实体类里,但是展现数据时需要用到model类,这时就需要把实体 ...

  2. java 父类转子类失败_父类不能转换成子类

    父类不能转换成子类 Exception in thread "main"java.lang.ClassCastException: Person cannot be cast to ...

  3. java 父类转换成子类的方法

    /* 父类转换成子类的特点: 1:父类转换成子类不能自动完成 2:父类转换成子类的前提是父类的真身是这个子类 3:如果这个父类的真身是子类B,不能强制转换成子类A,只能转换成B. */ class T ...

  4. java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则

    Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...

  5. 父类转换成子类, 或者是类之间属性拷贝

    问题很怪, 其实本不应该这么做的, 将父类转换成子类本就是不安全的行为. 但哪有事事顺心的, 真遇到了还是得解决. /*** 父类*/ class Foo {private String name; ...

  6. C#里氏转换,子类赋值父类,父类强制转换成子类的理解

    C#里氏转换,子类赋值父类,父类强制转换成子类的理解 最近在学习C#,在父类和子类的学习上有不理解的地方. Father f = new Son(); 这样的一个实例化程序中,内存时怎么样处理的,为什 ...

  7. 把SQLAlchemy查询对象转换成字典/json使用(分开)

    注:针对的是查询出来的是单条对象 多个对象的话可以使用for循环遍历查询出来的对象列表,也可以使用下面的方法 1.config.py文件 #!/usr/bin/env python #-*- codi ...

  8. C++ static_cast相同父类的子类之间强制转换(子类A的指针转换成子类B)(Ray Tracing the next week 中BVH部分遇到的问题)

    万恶之源: hittable_list world = static_cast<hittable_list>(make_shared<bvh_node>(world, 0, 1 ...

  9. C#父类强制转换成子类,子类隐式转换成父类

    看你将父类引用到的是父类对象还是子类对象了. 比如Person类是Student的父类 那么可以将p直接强制转换为Student: Person p=new Student(); Student s= ...

最新文章

  1. python的全局变量能暂存数据吗_Python 中的全局变量 局部变量
  2. Please set spring.main.web-application-type=reactive or remove spring-boot-starter-web dependency
  3. 简单DP (Preparing for Xtreme 12.0) | STL map使用
  4. 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器,适配了iOS6-10系统,3行代码即可集成....
  5. Laravel 使用 Aliyun OSS 云存储
  6. Python核心教程(第二版)读书笔记(三)
  7. JEECG社区第六期架构培训班报名
  8. final、finally、finalize
  9. python车牌识别_Python-车牌识别
  10. 程序猿用EdrawMax可以画啥图呢?
  11. System.Configuration.ConfigurationErrorsException:“配置系统未能初始化”
  12. 电脑出现指定的服务器名无效的弹窗,win7系统电脑提示指定的网络名不再可用的解决方法...
  13. Sentinel 控制台 不显示实时监控
  14. 嘉兴 机器人仓库 菜鸟_菜鸟在嘉兴推出全新智能仓 宣布将在双11启用超级机器人仓群...
  15. 简体中文旗舰版Windows7SP1
  16. 改变生活的态度,突破瓶颈
  17. 微信「扫一扫识物」 的背后技术揭秘
  18. 面向小白visual studio 2019 添加第三方库教程
  19. BLE(11)—— 细说 Initiating
  20. 高等数学(第七版)同济大学 习题2-2 个人解答(后7题)

热门文章

  1. KEBA控制器通过PROFINET连接西门子PLC
  2. 2021计算机保研夏令营、预推免英语问答
  3. 扫描文字识别软件是怎么样的
  4. STM32MP157驱动开发——RGB转HDMI
  5. 关于量子的7个常见误解
  6. 局域网内远程控制访问共享文件
  7. 风口上的雷军和他的编程梦
  8. 主流开源软件是否会被闭源,github能封杀个人账户请转战gitee
  9. 瑞盟MS8416光纤同轴解码芯片替代CS8416
  10. 如何进入UI设计行业 相关学习路线是什么