假设我有一个可以使用 EF + LINQ 查询的表,如下所示:
var results = dbContext.MyTable.Where(q => q.Flag = true);
然后,我知道如果我想限制返回的列,我可以在该行中添加一个选择,如下所示:
var results = dbContext.MyTable
.Select(model => new { model.column2, model.column4, model.column9 })
.Where(q => q.Flag == true);
我需要弄清楚的下一步是如何动态选择这些列。换句话说,我需要能够选择表中的列而不知道它们在编译时是什么。因此,例如,我需要能够执行以下操作:
public IEnumerable<object> GetWhateverColumnsYouWant(List<string> columns = new List<string{ "column3", "column4", "column999"})
{
// automagical stuff goes here.
}
保持返回的记录值是强类型很重要,这意味着不能将这些值转储到字符串列表中。这是可以通过反思来完成的吗?还是泛型更适合这个?老实说,我不知道从哪里开始。
谢谢你的帮助。