【发布时间】:2015-11-27 18:07:01
【问题描述】:
我有这些用于电子商务应用程序的表,我在 SQL 中创建了这些表,然后添加了 ADO.NET 并选择了 Code First。优先使用 MVC 默认身份代码:
Users: UserId(PK), FName, LName
Product: ProductId(PK), ProductName, ProductPrice, CategoryId(FK)
Category: CategoryId(PK), CategoryName
Orders: OrderId(PK), OrderTotal, UserId(FK)
OrderDetails: OdId(PK), OrderId(FK), ProductId(FK), Quantity
每个产品都与某个类别相关。用户可以下订单,订单详情存储在 OrderDetails 表中。
我想根据我存储在 Order 和 OrderDetails 表中的用户以前的购买来获取 PRODUCTS。
示例如果用户 A 从类别“服装”中购买产品“衬衫”,订单存储在 Order 表中,产品 ID 存储在 OrderDetails 表中
我写这个只是为了给你们一个想法(我希望它清楚)
public ActionResult Index()
{
string user = User.Identity.GetUserName();
var q = db.OrderDetails.Where(m => m.Order.Email == user).ToList();
var query = (from pd in db.Products
join od in db.OrderDetails on pd.ProductId equals od.ProductID
join oo in db.Orders on od.OrderId equals oo.OrderId
where oo.UserId == user
select new
{
ProductName = pd.Name,
ProductPrice = pd.Price, // six value
}).ToList();
return View(query);
}
这是数据库图的截图:
【问题讨论】:
-
这个问题与我试图帮助你的last one 没有什么不同。很有可能您根本不需要 join,但在不知道您的类之间的关系的情况下,我们无法给您具体的答案。
-
@spender 抱歉,我在那里回复了你,我可以提供课程。只是我没有太多时间来完成我正在处理的这项任务。
-
你写的 LINQ 查询有什么问题?
-
@spender s21.postimg.org/qvzspt8p3/Untitled.png数据库图图片
-
没有。不是数据库图。您的代码优先类,显示您在代码中设置的关系。
标签: c# asp.net-mvc linq