在 C# 中加入多个集合以从其他 类 检索数据
Joining multiple ICollections in C# to retrieve data from other classes
我的数据库关系如下:
在 C# 中,当有人将产品添加到购物车时,我正在创建新订单。我的问题是我需要在 gridview 中添加到购物车的产品数据,例如类别名称、产品长度等。Orders class 包含 OrderDetails 的 Icollection,我正在尝试检索数据从我存储产品 ID 的那些订单详细信息。所以这里的问题是,有什么方法可以让我在这里进行多重连接,这样我就可以从 table(C# 中的 class)产品、产品类别和用户添加的类别中检索我需要的所有数据将产品添加到购物车,以便他可以看到他放入购物车的内容。
我尝试通过以下方式访问其他 table:
Orders.OrderDetails.ElementAT(0).Product.ProductCategories.ElementAt(0)...
但这并没有带我去任何地方......有谁明白我在这里想要实现的目标吗?
如果有人可以帮助我解决这个问题或指出正确的方向,我应该怎么做?
通常明智的做法是创建一个 class 来表示您希望显示的数据,然后使用 LINQ 创建与该结构匹配的数据投影,如下所示:
from o in context.Orders
from p in o.Products
select new CartGridItem
{
Product = p,
CategoryNames = p.Categories.Select(c => c.Name),
}
我的数据库关系如下:
在 C# 中,当有人将产品添加到购物车时,我正在创建新订单。我的问题是我需要在 gridview 中添加到购物车的产品数据,例如类别名称、产品长度等。Orders class 包含 OrderDetails 的 Icollection,我正在尝试检索数据从我存储产品 ID 的那些订单详细信息。所以这里的问题是,有什么方法可以让我在这里进行多重连接,这样我就可以从 table(C# 中的 class)产品、产品类别和用户添加的类别中检索我需要的所有数据将产品添加到购物车,以便他可以看到他放入购物车的内容。
我尝试通过以下方式访问其他 table:
Orders.OrderDetails.ElementAT(0).Product.ProductCategories.ElementAt(0)...
但这并没有带我去任何地方......有谁明白我在这里想要实现的目标吗?
如果有人可以帮助我解决这个问题或指出正确的方向,我应该怎么做?
通常明智的做法是创建一个 class 来表示您希望显示的数据,然后使用 LINQ 创建与该结构匹配的数据投影,如下所示:
from o in context.Orders
from p in o.Products
select new CartGridItem
{
Product = p,
CategoryNames = p.Categories.Select(c => c.Name),
}