Hugo Hilário
Hugo Hilário

Reputation: 2908

LINQ Include Extension - Drill Down

I am able to use the strongly typed LINQ Extension : .Include

result = (from A in context.Transactions.Include(_ => _.TransactionDetails)
          where A.TransactionId == transactionId
          select A).SingleOrDefault();

However I cannot go further within TransactionDetails. My TransactionDetails also have a navigation named User however I don't know how to put it. The available options I have inside TransactiomDetails are the regular extensions for Collections (e.g First ; FirstOrDefault,etc).

I was able to do it using the regular string method (That I want to avoid) :

result = (from A in context.Transactions.Include(_ => _.TransactionDetails)
                                        .Include("TransactionDetails.User")
          where A.TransactionId == transactionId
          select A).SingleOrDefault();

Thanks

Upvotes: 0

Views: 291

Answers (1)

Selman Genç
Selman Genç

Reputation: 101681

Use this:

result = context.Transactions
                .Where(t => t.TransactionId == transactionId)
                .Include(t => t.TransactionDetails.Select(u => u.User))
                .FirstOrDefault();

Upvotes: 2

Related Questions