LINQ包括扩展 - 向下钻取

时间:2014-01-08 18:08:53

标签: c# entity-framework

我能够使用强类型LINQ扩展: .Include

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

但是我无法在 TransactionDetails 中继续前进。我的 TransactionDetails 还有一个名为用户的导航,但我不知道如何设置它。我在 TransactiomDetails 中的可用选项是集合的常规扩展(例如First; FirstOrDefault等)。

我能够使用常规字符串方法(我想避免):

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

由于

1 个答案:

答案 0 :(得分:2)

使用此:

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