Мне нужно, чтобы поля в 1 таблице зависели от 1 свойства, совпадающего со строками в другой таблице.Я могу написать этот запрос на SQL с подзапросом как таковым:
SELECT *
FROM Table1
WHERE Property1 IN
(
SELECT Property1
FROM Table2
WHERE Property0 = 1
)
Но я читаю здесь , что это менее сложно и так же просто написать с объединением, что я и сделал.Однако до сих пор я не могу вернуть только Table1, как мне хотелось бы, поскольку я использую соединение, которое, если я не ошибаюсь, требует от меня создания этого анонимного типа, как показано ниже.То, что я здесь сделал, работает (я создал еще один объект с теми же свойствами, что и в Table1, которые мне нужны), но я не могу не думать, что есть лучший способ сделать это.
Table1.Join(Table2, t1 => t1.Property1, t2 => t2.Property1, (t1, t2) => new
{
t1.Property1,
t1.Property2,
t1.Property3
})
.Select(ob => new UnnecessaryObject
{
Property1 = ob.Property1,
Property2 = ob.Property2,
Property3 = ob.Property3
}
Я также попытался просто создатьTable1 в части .Select, но я получил ошибку о том, что явное конструирование не разрешено.
Просто чтобы уточнить, я хотел бы иметь возможность вернуть IQueryable типа Table1, что, как мне кажется, мне следуетчтобы иметь возможность обойтись без создания UnneededObject ... но я все еще довольно новичок в LINQ, поэтому я был бы признателен за любую помощь, которую вы можете предложить.Заранее спасибо.