linq 通过反射获取某一列的数据,将列作为参数传递

业务场景是当需要动态返回某一列的时候,现在需要选择列的名称,然后根据列名去数据库返回这一列的数据,普通的返回数据需要指定提前指定返回的列,无法做到这一点,当然直接在dbset中通过迭代也可以做到这一点,但是当前我们的环境是在处理后的数据中进行返回的,所以采用反射的方式进行,方法比较简单,下面直接上代码

        public object[] Read(string felid, IEnumerable<long> ids)
        {
           return this.GetTaskTypes().Where(x => ids.Any(y => y == x.Id)).Select(s =>s.GetType().GetProperty(felid)!.GetValue(s, null)!).ToArray();
        }

felid是列名,目前只做了返回一列的列子

posted @ 2022-05-17 18:20  咳咳Pro  阅读(131)  评论(0)    收藏  举报