Вот моя структура данных:
public class Product
{
// Rest of props
public ICollection<ProductUpdate> ProductUpdate { get; set; }
}
public class ProductUpdate
{
// Rest of props
public Delivery Delivery { get; set; }
}
public class Delivery
{
// Rest of props
public virtual ICollection<DeliveryUsersApprovers> DeliveryUsersApprovers { get; set; }
}
public class DeliveryUsersApprovers
{
// Rest of props
public User User { get; set; }
}
Как мне написать синтаксический запрос метода linq, который бы выбирал Id
, StartDate
и Note
из ProductUpdate
, в то время как он выбирал бы для каждой строки ProductUpdate
отвечающий пользователь, который сделал обновление, содержащееся в классе DeliveryUsersApprovers
. Я хотел бы добиться этого, используя .Select()
, чтобы получить только необходимые столбцы ..
Я пробовал что-то вроде это, но это не работает:
var paymentStatusUpdates = await _dbContext.Product.Include(x => x.ProductUpdate)
.Select(x => new SomeCustomClassObjectWithFourProperties
{
// Read data from ProductUpdate somehow and select Id, Date and Note from ProductUpdate and get User from nested property
.Select(y=> new SomeCustomClassObjectWithFourProperties
{
Id = y.Id,
Date=y.StartDate,
Note=y.Note,
User=? // this is User from very nested prop
})
})
.FirstOrDefaultAsync(x => x.Id == productId, cancellationToken); //productId is received in method params
Я действительно изо всех сил пытаюсь проникнуть во вложенную подпорку и достичь User
для каждого ProductUpdate
, поэтому любая помощь будет отличной !!
Спасибо