我进行此查询是为了从表中获取数据
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();
已编辑
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();
关于c# - LINQ 根据列名动态选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542569/