Я пытаюсь выполнить запрос linq, но мне нужен результат в виде таблицы данных, поскольку я использую ее для хранения записей из разных запросов в одном и том же объекте состояния просмотра.
Две версии ниже компилируются, но возвращают пустой набор . Точная ошибка: «Значение не может быть нулевым. Имя параметра: source ". (И да, я проверил, есть ли данные):
MyDatabaseDataContext db = new MyDatabaseDataContext(conn);
IEnumerable queryProjects =
(from DataRow p in db.STREAM_PROJECTs.AsEnumerable()
where p.Field("STREAM_ID") == StreamID
select new
{
PROJECT_ID = p.Field("PROJECT_ID"),
PROJECT_NAME = p.Field("PROJECT_NAME")
}) as IEnumerable;
DataTable results = queryProjects.CopyToDataTable();
...
//(from p in db.STREAM_PROJECTs.AsEnumerable()
//where p.STREAM_ID == StreamID
//select new
//{
// p.PROJECT_NAME,
// p.PROJECT_ID
//}) as IEnumerable;
Примеры в этом потоке , похоже, тоже не работают в этой ситуации .
Думаю, я мог бы просто запустить команду sql-запроса по старинке, но разве linq не должен быть быстрее?