• 视图模型-Lambda表达式


          EF中通过改变实体对象达到操作数据库表数据的目的,在对数据库实体操作时,肯定少不了和Linq、Lambda打交道,熟悉SQL的话,上手 Linq并不难,from in where select...

         关于Lambda表达式,其实本身就是从委托一步步演化后的简写,对于基础的查询而言,Linq语句和Lambda可以相互转换。这里不做详细的介绍。说明一下Lambda表达式中where和select 的区别

       1.两者同时出现的时候,会从左到右解析

          ① select 在前,where在后:where的查询条件中必须包含select中选择的字段(select选择全列除外c=>c),否则编译失败

       ① where 在前,select在后:无限制,select可以选择任意字段

    2.where 、select 返回值不同

       ①where本身就是筛选符合条件的数据,返回值为实体类型的集合

       ②selct(c=>c) 为选择实体的所有属性列,返回的是实体类型的集合

        ③select(c=>new{所有属性列} ),返回的是匿名类型,其包含实体所在的所有列(部分列一样)集合

      ④select(c=>c.字段=“”),返回的bool 类型的集合,加上FirstOrDefault(),返回bool类型

           实际业务中,视图界面需要的数据会经常涉及到两个表甚至多个表,如何把多个表的部分字段关联作为一个返回类型供视图界面接收呢?这个时候视图模型就应运而生(可以采用继承解决),Linq、lambda语句将多表字段用Select New{}(匿名函数)查询出来,然后再将其一一对应赋值给视图模型的字段中

    根据IDE的提示,就可以匿名类型已经转换为实体类型,故可以返回至视图界面供其解析后展示

  • 相关阅读:
    如何区分 PaaS、IaaS 、SaaS?
    IP黑名单
    VMware vSphere 6 序列号
    什么是DMZ区域,DMZ区域的作用与原理
    PM2 进程管理工具
    解决Centos6 2021年后yum失效问题
    解决: Got permission denied while trying to connect to the Docker daemon socket
    Windows原版镜像
    使用LemonBench工具对Linux服务器进行综合评测
    使用 Packet Sender 发送TCP包
  • 原文地址:https://www.cnblogs.com/Sientuo/p/8975322.html
Copyright © 2020-2023  润新知