制作linq子查询

时间:2009-04-29 09:52:43

标签: linq

注册表有结构

regid
userid

var Registered = form r in dc.registered  where ... // list contains userid as f.k.

我想要已注册的用户列表。

如此查询

var user = from u in dc.users where u.userid in // should contains in Register.userid

我想了解更多关于linq的信息,我可以找到最好的东西吗?

3 个答案:

答案 0 :(得分:1)

我怀疑你想要:

var users = from u in dc.users 
            join r in Registered on u.userid equals r.userid
            select u;

请注意,这将比“Any”解决方案更有效,因为它将构建一组注册用户ID(作为哈希集),此时每个用户的测试都很快。

答案 1 :(得分:0)

我不确定你的问题是否清楚......但是......

这个资源是Linq的一个很好的起点:http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx

答案 2 :(得分:0)

您可以执行以下操作:

var innerQuery = from r in dc.Registered
                 select r;

var outerQuery = from k in dc.Users
                 where (innerQuery).Any(x => x.UserID == k.UserID)
                 select k;

不知道语法是否完全正确,但这是在LINQ中进行子查询的一种方法。无论如何,它应该指向正确的方向。

关于学习LINQ,这是另一个处理相同问题的问题:What are some good LINQ resources