2013-09-19 2 views
0

У меня есть список имен столбцов. Я хочу повторить выборку данных, используя список имен столбцов, и какой общий тип я должен использовать для преобразования импортированных данных?Как получить значение по столбцу name entity framework linq?

Edit:

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-запроса?

Заранее спасибо. Помощь приветствуется.

решение- Это не представляется возможным в связи с тем Альтернативой этому, я преобразовал список для 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(); 
    } 
} 
+0

Нужна дополнительная информация. –

+0

context.Table.Where должно возвращать классы класса IQueryable. –

+0

@GarrisonNeely Я знаю, что он вернет IQueryable, но если я хочу получить доступ к этим выбранным данным по имени столбца, то в какой общий тип я должен преобразовать полученные данные? – Hiral

ответ

0

Что вы описали не собирается работать с родными функциями LINQ. Однако есть библиотека, которая должна вам помочь. Ознакомьтесь с Dynamic LINQ: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

+0

Я не знал, что это невозможно в LINQ. Так что спасибо за информацию. Я не использовал Dynamic LINQ вместо этого, я использую метод расширения, я обновил свой вопрос с помощью решения. – Hiral

Смежные вопросы