У меня есть 2 таблицы, назовем их t1 и t2.t1 имеет идентификатор, строку и логическое значение.У t2 есть ID, дата и t1.ID.Я хочу поместить их в Список моего класса.
public class MyClass {
public string Name {get; set;}
public DateTime Date1 {get; set;}
public Datetime Date2 {get; set;}
}
(в нем 15 дат, чтобы уменьшить его, я просто поместил два)
Мне удалось найтирешение:
List<MyClass> list = (from t2 in con.t2
join t1 in con.t1 on t2.T1ID equals t1.ID
select t2).GroupBy(d => d.T1ID).Select(x => new MyClass()
{
Name = x.FirstOrDefault().t1.Name,
Date1 = x.where(d => d.ID == 1).SingleOrDefault().Date,
Date2 = x.where(d => d.ID == 2).SingleOrDefault().Date
}).ToList();
Работает, как и ожидалось, но проблема в том, что я получаю предупреждение от Visual Studio:
Выражение LINQ 'GroupBy ([t2].T1ID) 'не удалось перевести и будет оцениваться локально.
Появляется несколько раз.Это сообщение приходит и для SingleOrDefault.Я немного поэкспериментировал, и это просто приходит, если я помещаю где-то в select new.
Итак, как мне изменить свое выражение, чтобы избежать этого?Или мое выражение лица дерьмо, и я мог бы сделать это намного лучше?(Я не могу изменить структуру таблицы)