Как преобразовать результат запроса linq для двух данных в окончательный в c # winforms - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть две таблицы данных, в одной из которых хранится информация о некоторых событиях, а в другой - информация о пользователях Две таблицы: -

  1. Подробности события enter image description here

  2. Данные пользователя enter image description here

Теперь, когда я применяю запрос linq слева, присоединяюсь к моей таблице сведений о событии с таблицей сведений о пользователе, используя ack_by, равный user_id, тогда запрос linq выполняется правильно, но теперь я хочу преобразовать свой результат запроса linq обратно в другой набор данных, как это сделать. .

Мой код запроса linq выглядит примерно так: -

DataTable recordsDetails = (DataTable)(arrayList)[0];
        DataTable userDetailsTable = (DataTable)(arrayList)[2];            
        var query = (from dt1row in recordsDetails.AsEnumerable()
                    join dt2row in userDetailsTable.AsEnumerable() on dt1row.Field<int>("ack_by") equals dt2row.Field<int>("user_id")                      
                    select new 
                    {
                      event_name = dt1row.Field<string>("event_name"),
                      event_id = dt1row.Field<int>("event_id"),
                      event_severity = dt1row.Field<int>("event_severity"),
                      event_time = dt1row.Field<DateTime>("event_time"),
                      ack_by = dt1row.Field<int>("ack_by"),
                      ack_time = dt1row.Field<DateTime>("ack_time"),
                      zone_id = dt1row.Field<string>("zone_id"),
                      camera_id = dt1row.Field<int>("camera_id"),
                      camera_name = dt1row.Field<string>("camera_name"),
                      user_name = dt2row.Field<string>("username")
                    });

У меня простой вопрос: как вернуть результат этой операции linq в другую таблицу данных? Спасибо!

1 Ответ

0 голосов
/ 07 сентября 2018
IEnumerable<DataRow> query = (from dt1row in recordsDetails.AsEnumerable()
join dt2row in userDetailsTable.AsEnumerable() on dt1row.Field<int>("ack_by") equals dt2row.Field<int>("user_id")                      
select new 
{
  event_name = dt1row.Field<string>("event_name"),
  event_id = dt1row.Field<int>("event_id"),
  event_severity = dt1row.Field<int>("event_severity"),
  event_time = dt1row.Field<DateTime>("event_time"),
  ack_by = dt1row.Field<int>("ack_by"),
  ack_time = dt1row.Field<DateTime>("ack_time"),
  zone_id = dt1row.Field<string>("zone_id"),
  camera_id = dt1row.Field<int>("camera_id"),
  camera_name = dt1row.Field<string>("camera_name"),
  user_name = dt2row.Field<string>("username")
});

DataTable Table = query.CopyToDataTable<DataRow>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...