В начале я знаю, что есть похожие вопросы, но мой немного другой.
Я реализовал функцию, которая позволяет пользователю выбирать столбцы, которые он хочет видеть.
Я создал хранимую процедуру, которая получает все имена столбцов из таблицы UserColumns
, создает динамический SQL-запрос и затем запускает запрос exec (@command)
. Описанные выше функции работают очень хорошо, но есть и другие требования, с которыми я не справлюсь.
Есть TasksViewModel
:
public class TasksViewModel
{
public List<Dictionary<List<string>, List<List<object>>>> Tasks { get; set; }
public List<UserDefaultStatusesViewModel> UserStatuses { get; set; }
public List<ZgloszenieStatus> TaskStatuses { get; set; }
public TasksViewModel()
{
}
}
Tasks
заполняется хранимой процедурой, выполняющей запрос SELECT x,y,z... FROM table...
.
Я использую этот метод:
private static IEnumerable<Dictionary<List<string>, List<List<object>>>> Read(DbDataReader reader)
{
var dict = new Dictionary<List<string>, List<List<object>>>();
var cols = new List<string>();
for (int temp = 0; temp < reader.FieldCount; temp++)
{
cols.Add(reader.GetName(temp));
}
var items = new List<List<object>>();
while (reader.Read())
{
var tmp = new List<object>();
for (int i = 0; i < reader.FieldCount; i++)
{
tmp.Add(reader.GetValue(i));
}
items.Add(tmp);
}
dict.Add(cols, items);
foreach (var item in dict)
{
}
yield return dict;
}
Я нахожу это очень сложным, но в настоящий момент я понятия не имею, есть ли другой способ сделать это.
Я использую Entity Framework в своем приложении.
Представьте, что я использую List<Tasks>
вместо List<Dictionary<List<string>, List<List<object>>>>
. Tasks
является таблицей базы данных.
public class Tasks
{
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime Date { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Пользователь хочет видеть только ID,Title,Description
столбцы, поэтому таблица UserColumns
выглядит следующим образом:
UserId | ColumnName
1 | ID
2 | Title
3 | Description
Есть ли способ выбрать определенные столбцы из List<Tasks>
на основе таблицы UserColumns
с использованием Entity Framework?