Соединить две таблицы в Linq to SQL - PullRequest
4 голосов
/ 22 марта 2011

Возможно, это довольно простой вопрос, но я новичок в Linq to SQL.У меня есть две таблицы

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

Я хотел бы запрос, который дает, например: userID=3 затем дать все детали (FirstName,LastName etc) Как я могу объединить эти две таблицы?Я бы предпочел C# код, если это возможно!

Ответы [ 4 ]

6 голосов
/ 22 марта 2011

Вам не нужно делать всю сантехнику самостоятельно.Если у вас есть правильные внешние ключи в базе данных, вам не нужно присоединяться к себе.

Вы можете просто сделать:

var query = from u in db.Users
select new { User = u;
FirstName = u.UserTables.FirstName }
4 голосов
/ 22 марта 2011

для внутреннего соединения используйте что-то вроде:

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 голосов
/ 22 марта 2011

Примерно так:

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
                   };

Полагаю, ваш пример просто пример , верно?Потому что нет смысла разбивать эти данные на две таблицы.

1 голос
/ 22 марта 2011

Можно объединить таблицы, используя 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();

С уважением

...