Я новичок в C #, я пытаюсь объединить в группы более одного поля в качестве ключей, используя LINQ, используя методы Extension, но безуспешно.
Мой класс
public class NewStruct
{
public string newId { get; set; }
public IEnumerable<Table2> newTable2 { get; set; }
}
Мой код
var context = new MyDBContex();
IQueryable<NewStruct> list = context.Table1
.GroupJoin(context.Table2,
e => new { e.Id1, e.Id2, e.Datefield },
q => new {q.Id1, q.Id2, e.Datefield },
(t1, t2) => new NewStruct { newId= t1.Id1, newTable2 = t2 });
это вызовет ошибку
Error CS0411 The type arguments for method 'Queryable.GroupJoin<TOuter, TInner, TKey, TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, IEnumerable<TInner>, TResult>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
, но когда поле условия для объединениятолько один такой
IQueryable<NewStruct> list = context.Table1
.GroupJoin(context.Table2,
e => e.Id1,
q => q.Id1,
(t1, t2) => new NewStruct { newId= t1.Id1, newTable2 = t2 });
это без ошибок
Что я сделал не так?
Заранее спасибо