繁体   English   中英

LINQ从列名称动态选择列

[英]LINQ Dynamically Select Column From Column Name

我进行了此查询以从表中获取数据

List<MyTable> liDeatil = Db.Database.SqlQuery<MyTable>("SELECT * FROM [myDB].[dbo].[MyTable]").ToList();

liDetail我想动态选择列,如

 liDeatil.Select(s => new myclass{ Id = s.Id ,Marks = ....}).Tolist();

MyClass在哪里

 public class MyClass
 {
     public Nullable<decimal> Id { get; set; }
     public string Marks { get; set; }
     public string rank { get; set; }
 }

有没有办法让专栏帮助我
我试图通过反思来做到这一点,但它不起作用

var ss = liDeatil.Select(s => new MyClass{ Id = s.Id ,Marks = s.GetType().GetProperties("ColumnMarks")}).Tolist();

EDITED

     public class MyTable
     {
         public Nullable<decimal> Id { get; set; }
         public string ColumnMarks{ get; set; }
         public string ColumnMarks1{ get; set; }
         public string ColumnMarks2{ get; set; }
     }

从您尝试通过反射实现的目标,下面的代码应该工作:

var ss = liDeatil.Select(s => new MyClass{ Id = s.Id ,
Marks = (string)s.GetType().GetProperty("ColumnMarks").GetValue(s,null)}).Tolist();

到底有什么不起作用? 你有例外吗? 我很困惑您从何处获得“ ColumnMarks”。 您没有发布MyTable的定义,所以也许是从那里发布的。

liDeatil.Select(s => new myclass{ Id = s.Id, Marks = (string)s.GetType().GetProperty("ColumnMarks").GetValue(s, null)}).Tolist();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM