Linq查询遍历表

时间:2011-09-08 11:10:31

标签: c# linq entity-framework linq-to-entities

Schema在我下面发生了变化,因此用户FK不再在条目表中,而是通过帐户表间接引用

我有以下表格: 用户 帐户(来自用户的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();

只是不确定如何遍历表格并填充条目类型

2 个答案:

答案 0 :(得分:1)

如果您更喜欢基于关联的方法而不是连接,请考虑以下事项:

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

答案 1 :(得分:0)

您可以使用条目加入用户帐户表,这样您就可以使用userId获取所有条目。

类似的东西:

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

希望这会有所帮助。