我有 4 個表 1-Cart 2-CartItems 3-CartItemDetails。表 1 和表 2 是一對多,表 2 和表 3 是一對多。
我想從表 1 和表 2 中檢索一些資料以及 CartItemDetails 的計數。
public class CartDto
{
public long CartId { get; set; }
public int FinalPrice { get; set; }
public int CartItemDetailCount { get; set; }
public List<CartItemDto> CartItems { get; set; }
}
public class CartItemDto
{
public long Id { get; set; }
public long PackageId { get; set; }
public string PackageTitle { get; set; }
}
所以我這樣做了:
var cart = await _context.School_Carts
.Include(p => p.CartItems)
.ThenInclude(p => p.CartItemDetails)
.Where(p => p.BrowserId == BrowserId)
.FirstOrDefaultAsync();
var result = new CartDto()
{
FinalPrice = cart.FinalPrice,
CartId = cart.Id,
CartItemDetailCount = cart.CartItems.Select(p=>p.CartItemDetails.Count()),
CartItems = cart.CartItems.Select(p => new CartItemDto
{
PackageTitle = p.Package.Title,
Id = p.Id,
PackageId = p.PackageId,
}).ToList(),
};
在這種情況下如何計算?
uj5u.com熱心網友回復:
相信您需要展平CartItems串列以將 中的所有專案CartItemDetails通過.SelectMany().
CartItemDetailCount = cart.CartItems.SelectMany(x => x.CartItemDetails).Count()
演示@.NET Fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/525623.html
標籤:C#林克拉姆达
