我有一系列与主键/外键关系连接的表。我有一个交易表,每个交易引用一个且只有一个产品。每个产品可以只存在一个类别:
Categories Products Transactions
------------- ------------- -----------------
CategoryId ProductId TransactionId
CategoryName CategoryId ProductId
ProductName TransactionAmount
我刚刚学习LinqToSql,并且我使用lambda表达式来访问每个类别中的Products(x => x.Products)。但我要做的是访问Transactions表,特别是按类别获取所有交易的总和。
我确信我可以通过在Linq语句中创建手动连接来实现此目的。但似乎我不应该这样做,因为我的所有表都在模型中作为PF / FK加入。
有人可以举例说明如何开始吗?
答案 0 :(得分:2)
不试图编译它,我认为这将按照你想要的方式工作。它假定您在LINQ to SQL数据上下文中设置了关联。
var transPerCategory = db.Categories
.Select( c => new {
Name = c.CategoryName,
Amount = c.Products
.Sum( p => p.Transactions
.Sum( t => t.TransactionAmount )
)
});