2011-09-08 105 views
0

架構已根據我更改,因此用戶FK在條目表不再,但通過賬目表間接引用Linq查詢遍歷表

我有以下表格: 用戶 帳戶(FK從用戶) 項(FK從賬戶)

我基本上想要得到的條目使用LINQ從一個特定的用戶:

var userAccounts = context.User.Include("Accounts").Include("Entries").Where(s => s.UserId == userId); 

這是以前的查詢之前用戶從條目中刪除:

return (from pc in userAccounts 
    select new Entry{ 
     Timestamp = pc.Timestamp, 
     Log = pc.Log }).ToList().AsQueryable(); 

只是不知道該如何遍歷表並填充條目類型

回答

1

如果您更喜歡基於關聯的方法,而不是加入,考慮以下因素:

var userAccounts = from user in context.User 
        where user.UserId == userId 
        from account in user.Accounts 
        from entry in account.Entries 
        select entry; 
+0

豎起大拇指可讀性 –

0

,您可以加入用戶賬戶的條目表,讓你可以與用戶id的所有條目。

類似的東西:

from ua in userAccounts join en in entries on ua.accountId equals en.accountId into data 
where data.userId = someId 
select data.entries 

希望這會有所幫助。