Question

J'ai une série de tables jointes avec des relations de clé primaire / clé étrangère. J'ai un tableau des transactions, et chaque transaction fait référence à un et un seul produit. Chaque produit peut exister dans une et une seule catégorie:


Categories        Products           Transactions
-------------     -------------      -----------------
CategoryId        ProductId          TransactionId
CategoryName      CategoryId         ProductId
                  ProductName       TransactionAmount
  

Je viens d’apprentissage de LinqToSql et j’ai utilisé les expressions lambda pour accéder aux produits de chaque catégorie (x = & x.Products). Mais ce que j'essaie de faire, c'est d'accéder au tableau des transactions, en particulier pour obtenir la somme de toutes les transactions par catégorie.

Je suis sûr de pouvoir le faire en créant des jointures manuelles dans ma déclaration Linq. Mais il ne semble pas que je devrais le faire, car toutes mes tables sont jointes en tant que PF / FK dans le modèle.

Quelqu'un peut-il donner un exemple de la façon de commencer?

Était-ce utile?

La solution

Sans essayer de le compiler, je pense que cela fonctionnera comme vous le souhaitez. Cela suppose que les associations soient définies dans le contexte de données LINQ to SQL.

var transPerCategory = db.Categories
                         .Select( c => new {
                             Name = c.CategoryName,
                             Amount = c.Products
                                       .Sum( p => p.Transactions
                                                   .Sum( t => t.TransactionAmount )
                                           )
                          });
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top