【发布时间】:2017-10-12 14:41:57
【问题描述】:
我的数据库中有这样的表结构:
Items <= User => Transactions
所以在 C# 映射类中,User 包含 Items 和 Transactions 的集合...(一对多关系)..
所以现在我所做的如下:
var filteredProducts = ctx.Transactions.Where(x => x.SearchedUserID ==
firstRequest.SearchedUserID)
.OrderByDescending(x => x.TransactionDate)
.GroupBy(x => x.TransactionID ).Select(x => new ResultItem()
{
TransactionID = x.Key,
SaleNumber = x.Sum(y => y.QuantityPurchased)
})
.ToList();
如您所见,我正在按事务表中的数据进行分组...现在我想在这里做的事情,如果可能的话,以一种简单的方式将 User 表转到 Items 表并选择一个特定的我需要的那个分组项目的属性,即 CurrentPrice,并且表 Transactions 不包含此数据...
所以在选择语句中,我想像这样提取 CurrentPrice 属性:
.Select(x => new ResultItem()
{
TransactionID = x.Key,
SaleNumber = x.Sum(y => y.QuantityPurchased),
CurrentPrice = // somehow go to Items table and pick up this data
})
.ToList();
有人可以帮帮我吗?
【问题讨论】:
-
Transactions是否对Items有任何引用?假设客户总共购买了 4 件商品,2 件 A、1 件 B 和 1 件 C。此外,假设客户最初购买了 1 件商品 A 和 1 件 B,然后又购买了 1 件 A 件和 1 件 C。据说客户有一个包含 4 个项目的列表和一个包含 2 个交易的列表。每笔交易与客户购买的商品之间是否有任何联系? -
@Christos no ,项目和交易之间没有引用,它们只是通过用户表链接..
-
您可以发布架构吗?你按
TransactionID分组对我来说很奇怪。根据定义,ID 应该是唯一的。 -
@User987 如果您无法通过查看与客户关联的交易来判断客户购买了什么,我看不出您如何找到您正在寻找的东西。是我上面描述的情况还是系统是以其他方式设计的?具体来说,您是否有多个项目的交易或每个项目的一个交易?我不清楚,因为您按
TransactionID分组。这不是 Transactions 表的主键吗?如果是这样,为什么要按TransactionID分组?您能否发布项目、用户、交易及其基础关系的架构详细信息? -
你想
CurrentPrice作为items属于SearchedUserID的一部分吗?@User987
标签: c# asp.net asp.net-mvc linq c#-4.0