将Linq中的两个表连接到SQL

时间:2011-03-22 09:15:23

标签: c# asp.net database linq-to-sql

也许是一个非常简单的问题,但我是Linq to SQL的新手。我有两张桌子

User : UserId,name,Password,Email
USER_TABLE: Id, UserId, FirstName,LastName......

我想要一个查询,例如:userID=3然后提供所有详细信息(FirstName,LastName etc) 我如何加入这两张桌子?如果有可能,我更喜欢C#代码!

4 个答案:

答案 0 :(得分:6)

您不必亲自完成所有管道工作。如果您在数据库中拥有正确的外键,则无需自己加入。

你可以这样做:

var query = from u in db.Users
select new { User = u;
FirstName = u.UserTables.FirstName }

答案 1 :(得分:4)

对于内部联接使用类似:

var query = from u in db.Users
            join ut in db.UserTables on u.UserId equals ut.UserId
            select new
            {
                User = u,
                Extra = ut
            };

答案 2 :(得分:2)

或许这样:

var joinedResult = from u in context.User
                   join u2 in context.UserTable on u.UserId equals u2.UserId
                   select new {
                      UserId = u.UserId,
                      FirstName = u2.FirstName
                   };

我猜你的例子只是一个例子,对吗?因为将这些数据分成两个表没有多大意义。

答案 3 :(得分:1)

可以使用linq连接表:

例如:

var test = (from a in DataContext.User 
    join b in DataContext.UserTable on a.UserId equals b.UserId 
    select new 
    {                       
        UserId = a.UserId,
        FirstName = b.FirstName
        LastName = b.LastName
    }).ToList();

此致

相关问题