我有两个类ShoppingCart
和CartItems
像这样:
public class ShoppingCart
{
public Guid Id { get; set; }
public DateTime CreatedOn { get; set; }
public Guid OwnerId { get; set; }
public ICollection<CartItem> Items { get; set; }
}
public class CartItem
{
public Guid Id { get; set; }}
public int Quantity { get; set; }
public Guid ProductId { get; set; }
public Guid ShoppingCartId { get; set; }
}
我想使用以下方法通过
CartItems
获取所有ownerId
:public IEnumerable<CartItem> GetCartItems(Guid ownerId)
{
return _shoppingCarts.Where(row => row.OwnerId == ownerId)
.Select(row => row.Items)
.ToList() ;
}
但它返回一个错误:
Cannot implicitly convert type System.Collections.Generic.List<System.Collections.Generic.ICollection<CartItem>>'to System.Collections.Generic.IEnumerable<CartItem>
最佳答案
您方法的当前返回值是IEnumerable<List<CartItem>>
类型。
您应该使用Select
代替SelectMany
,如下所示:
public IEnumerable<CartItem> GetCartItems(Guid ownerId)
{
return _shoppingCarts.Where(row => row.OwnerId == ownerId).SelectMany(row => row.Items).ToList() ;
}
SelectMany
将CartItem
的集合平整为CartItem
的一个集合。关于c# - 如何在 Entity Framework 中返回嵌套列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36303772/