如何通过列名实体框架linq获取价值?

时间:2013-09-19 16:18:30

标签: c# asp.net linq entity-framework asp.net-mvc-4

我有一个列名列表。我想使用列名列表迭代获取的数据,那么我应该使用什么泛型类型将获取的数据转换成?

编辑:

List<string> columns = new List<string>();
columns.Add("column1");
columns.Add("column2");
columns.Add("column3");

string joinColumns = string.Join(",", columns);
string sql = "select "+joinColumns+" from Table";

它只会获取选定的列,那么如何使用实体框架而不是使用sql查询来执行相同的功能呢?

提前致谢。 感谢帮助。

解决方案 - 这在链接中是不可能的,所以替代这个,我使用链接中描述的扩展方法将List转换为DataTable - https://stackoverflow.com/a/5805044/1416033

List<string> columns = new List<string>();
columns.Add("column1");
columns.Add("column2");
columns.Add("column3");

List<Accounts> accountList = GetAccountList();
DataTable dt = accountList.ToDataTable<Accounts>();
foreach (DataRow dr in dt.Rows)
{
   foreach (string column in columns)
   {
      val = dr[column].ToString();
   }
}

1 个答案:

答案 0 :(得分:0)

您所描述的内容不适用于本机LINQ功能。但是有一个图书馆,应该可以帮到你。查看Dynamic LINQ:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx