EFCore某张表中获取某几个字段

1.背景

在前后端分离的应用场景中,某张统计表有20几个字段,但是前端可能只用到4个字段,这样就涉及到获取某个表中的部分字段值。本文介绍3种方法。

2.法一:linq

2.1 使用Select方法

List<Emplayee> emplayeeList = GetEmplayeeList();            //获取员工信息列表
int[] empIds = emplayeeList.Select(a => a.Id).ToArray(); //获取员工编号数组

2.2 使用ForEach方法

List<Emplayee> emplayeeList = GetEmplayeeList();  //获取员工信息列表
string empIds = "";
emplayeeList.ForEach(a => empIds += a.Id + ",");
empIds = empIds.TrimEnd(',');
Console.WriteLine(empIds); //输出:1,2,3

2.3 其他参考代码

/// <summary>
/// 员工信息类
/// </summary>
public class Emplayee
{
/// <summary>
/// 编号
/// </summary>
public int Id { get; set; } /// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }

/// <summary>
/// 获取员工信息列表
/// </summary>
/// <returns></returns>
public static List<Emplayee> GetEmplayeeList()
{
List<Emplayee> emplayeeList = new List<Emplayee>();
Emplayee emplayee1 = new Emplayee() { Id = 1, Name = "张三" };
Emplayee emplayee2 = new Emplayee() { Id = 2, Name = "李四" };
Emplayee emplayee3 = new Emplayee() { Id = 3, Name = "王五" };
emplayeeList.Add(emplayee1);
emplayeeList.Add(emplayee2);
emplayeeList.Add(emplayee3);
return emplayeeList;
}

3.法二:IQueryble

3.1 参考例子一

我有个新闻表

id,title,body,createtime,author,click

使用ef4.1 仅仅读取 id,title,createtime 并显示在页面上。

 public static List<NewInfo> GetHotNews()
{
List<NewInfo> list;
list = (from n in db.NewInfoes
where n.IsTop == 1
orderby n.PublishTime descending
select new
{
Title = n.Title,
NewID = n.NewID,
PublishTime = n.PublishTime
}).ToList();
return list;
}
改为
public static List<NewInfo> GetHotNews()
{
List<NewInfo> list;
list = (from n in db.NewInfoes
where n.IsTop == 1
orderby n.PublishTime descending .Select(n => new NewInfo
{
Title = n.Title,
NewID = n.NewID,
PublishTime = n.PublishTime
});
return list;
}

备注:只是IEnumerable是把所有数据拉到内存里筛选,IQueryable会形成sql直接在库里查询返回

3.2 参考例子二

4.法三:建立一个对象,然后配置一个automapper,然后将查询结果匹配过来

具体可以自行尝试

参考:

1.网友 Kawhi(1585955375), 奥特曼迪斯特洛夫斯基(479663032)

2.https://blog.csdn.net/lcnmdfx/article/details/8332401

3.https://blog.csdn.net/pan_junbiao/article/details/51757904

EFCore某张表中获取某几个字段的更多相关文章

  1. 关于如何修改一张表中所有行与选定字段的同sql多行语句的添加方法

    利用Excel以及word文档进行操作 将表的字段以及数据全部放入Excel表中并保存. 在word表中将写好的sql语句放入文档,利用邮件--选择收件人--使用现有列表--(选择之前做好的Excel ...

  2. mysql结构相同的三张表查询一条记录\将一张表中的数据插入另外一张表

    将一张表中的数据插入另外一张表 1.两张表结构相同 insert into 表1名称 select * from 表2名称 2.两张结构不相同的表 insert into 表1名称(列名1,列名2,列 ...

  3. oracle定时器,调用存储过程,定时从n张表中取值新增到本地一张表中

    --创建新增本地数据库的存储过程create or replaceprocedure pro_electric_record as  begin    insert into electric_met ...

  4. mysql统计一张表中条目个数的方法

    统计一张表中条目的个通常的SQL语句是: select count(*) from tableName; #or ) from tableName; #or 统计一个列项,如ID select cou ...

  5. 【SqlServer】【问题收集】删除同一张表中完全相同的记录

    1   概述 在Sqlserver中,当通过SqlServer设计器删除同一张表中两条完全相同的记录时,会弹出如下提示: 点击“是” 弹出如下提示,不让删除 2   问题解决 这个问题很简单,用DEL ...

  6. Oracle中把一张表查询结果插入到另一张表中

      1. 新增一个表,通过另一个表的结构和数据 create table XTHAME.tab1 as select * from DSKNOW.COMBDVERSION 2. 如果表存在: inse ...

  7. 通过mapreduce把mysql的一张表的数据导到另外一张表中

    怎么安装hadoop集群我在这里就不多说了,我这里安装的是三节点的集群 先在主节点安装mysql 启动mysql 登录mysql 创建数据库,创建表格,先把数据加载到表格 t ,表格t2是空的 mys ...

  8. Oracle查询表结果添加到另一张表中

    转自:https://blog.csdn.net/lx870576109/article/details/78336695 把每一个知识点进行积累:Oracle数据库中将查询一张表的结果添加到另一张表 ...

  9. hive sql 查询一张表的数据不在另一张表中

    有时,我们需要对比两张表的数据,找到在其中一张表,不在另一张表中的数据 hql 如下: SELECT * FROM (SELECT id FROM a WHERE dt = '2019-03-17' ...

随机推荐

  1. su和sudo的区别与使用【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  2. Seata AT 模式启动源码分析

    从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM.TM.TC),接下来我会更新 Seata 源码分析系列文章. ...

  3. Java修炼——面向对象_抽象类和抽象方法

    抽象类和抽象方法 什么是抽象类? 使用 abstract 修饰的类称为抽象类 public abstract class Person { } 抽象类的特征 1) 抽象类不可以创建对象 2) 抽象类可 ...

  4. Asp.net MVC + AngularJS 统一权限管理系统(一)

    背景: 之前公司内部做了不少系统,但是权限管理都是分开的:一直都想能够有一套统一管理的权限管理系统:有的时间都是一直在计划,随着时间的流逝,计划始终没有实现,也随着项目的增多而这权限管理也变得版本多样 ...

  5. BZOJ1014 火星人的prefix

    火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字 ...

  6. protobuf-rpm

    ############################################################## # http://www.rpm.org/max-rpm/ch-rpm-i ...

  7. Selenium自动化面试题

    (1)selenium的工作原理?        ① 脚本启动driver ② driver去驱动浏览器作为远程服务器 ③ 执行脚本发送请求 ④ 服务器解析请求作出相应操作,并返回给客户端(脚本) ( ...

  8. vue项目中使用腾讯地图

    最近在使用腾讯地图api(以下以位置数据可视化API为例),在初建项目之后,按照官网的说法,直接引入 再将官网的初始化例子放一个方法 在mounted中调用即可看到腾讯地图,但是我引入之后,一直报TM ...

  9. matlab安装出现“无法访问所在网络位置”的正确解决办法

    今天安装matlab时出现了如下错误:无法访问您试图使用的功能所在的网络位置,单击"确认"重试或者在下面输入包含"vcredist.msc"的文件夹路径. (由 ...

  10. 深入探索Java设计模式之单例模式

    单例模式可确保在给定的时间实例中只能创建一个具有全局访问点的对象.这是面向对象编程中最常用的技术之一.尽管它很简单,但从类设计的角度来看可能是最简单的,但是在尝试实现它们之前,必须先解决一些细微的问题 ...