Domanda

Ho una serie di tabelle unite con relazioni Chiave primaria / Chiave esterna. Ho una tabella di Transazioni e ogni Transazione fa riferimento a un solo Prodotto. Ogni prodotto può esistere in una e una sola Categoria:


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

Sto solo imparando LinqToSql e ho usato espressioni lambda per accedere ai Prodotti in ogni categoria (x = > x.Products). Ma quello che sto cercando di fare è accedere alla tabella Transazioni, in particolare per ottenere una somma di tutte le transazioni per categoria.

Sono sicuro di poterlo fare creando join manuali nella mia dichiarazione Linq. Ma non sembra che dovrei farlo, dal momento che tutti i miei tavoli sono uniti come PF / FK nel modello.

Qualcuno può offrire un esempio di come iniziare?

È stato utile?

Soluzione

Senza provare a compilarlo, penso che funzionerà nel modo desiderato. Presuppone che tu abbia le associazioni impostate nel contesto dei dati LINQ to SQL.

var transPerCategory = db.Categories
                         .Select( c => new {
                             Name = c.CategoryName,
                             Amount = c.Products
                                       .Sum( p => p.Transactions
                                                   .Sum( t => t.TransactionAmount )
                                           )
                          });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top