Pregunta

Tengo una serie de tablas que se unen con las relaciones Clave primaria / Clave externa. Tengo una tabla de transacciones, y cada transacción hace referencia a un solo producto. Cada producto puede existir en una y solo una Categoría:


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

Estoy aprendiendo LinqToSql y he usado expresiones lambda para acceder a los Productos en cada categoría (x = > x.Products). Pero lo que intento hacer es acceder a la tabla Transacciones, específicamente para obtener una suma de todas las transacciones por categoría.

Estoy seguro de que podría hacer esto creando uniones manuales en mi declaración Linq. Pero no parece que deba hacer esto, ya que todas mis tablas están unidas como PF / FK en el modelo.

¿Alguien puede ofrecer un ejemplo de cómo comenzar?

¿Fue útil?

Solución

Sin intentar compilarlo, creo que esto funcionará de la manera que desee. Se supone que tiene las asociaciones configuradas en el contexto de datos LINQ to SQL.

var transPerCategory = db.Categories
                         .Select( c => new {
                             Name = c.CategoryName,
                             Amount = c.Products
                                       .Sum( p => p.Transactions
                                                   .Sum( t => t.TransactionAmount )
                                           )
                          });
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top