Я строю / объединяю лямбда-выражения
Вот что у меня есть.
var products = context.Products.Select(c => c);
if (input.DefendantId != null)
{
products = products
.Where(p => p.DefendantId == input.DefendantId);
}
но теперь DefendantId был удален из таблицы Product, поэтому мне нужно добавить предложение объединения в таблицу трансляций (ProductDefendant), при этом возвращая
IQueryable<Product>
В таблице ProductDefendant содержатся как ProductId, так и DefendantId.
так что-то вроде этого ниже, но я не уверен, как получить последнюю часть, которая использует предложение where, потому что p.ProductDefendant
это List<ProductDefendant>
if (input.DefendantId != null)
{
products = products
.Join(context.ProductDefendant,
p => p.Id,
pd => pd.ProductId,
(p, pd) => new Product())
.Where(p => p.ProductDefendant.DefendantId == input.DefendantId);
}
Я написал это как linq, но вместо этого я хочу использовать лямбда-выражения.
Вот линк
products =
from p in products
join pd in context.ProductDefendant
on p.Id equals pd.ProductId
where pd.DefendantId == input.DefendantId
select p;
и затем в самом конце я не могу получить код DefendantCode, который является соединением между ProductDefendant и Defendant
var productsVM = products.Select(c => new GetProductsReturnViewModel
{
Id = c.Id,
ProductName = c.ProductName,
DefendantCode = c.ProductDefendants.First().Defendant.DefendantCode // only gets teh first, not the correct code
});