Я загрузил два изображения.

  1. Изображение, показывающее мой edmx в Visual Studio 2013.
  2. Изображение, показывающее мои таблицы в ssms.

Я просто хотел показать RoleName (Colmun [Name] в таблице AspNetRoles) с UserName (Colmun [UserName] в таблице AspNetUsers) в простой таблице (html) View, т.е. пользователя со всеми соответствующими ролями. Как я могу сделать это с помощью LINQ? Мой Edmx моя база данных

Обновление 1: Я пробовал сделать следующее, но это не сработало

var result = from tb1 in context.Roles
             join tb2 in context.Users on tb1.Id equals tb2.Id
             select new { tb1.Name, tb2.UserName };

Но это неправильно, на самом деле я хочу, чтобы Userid всех пользователей в таблице Role вместо tb1.Id [в вышеприведенном коде LINQ] соответствовал Userid в User стол [tb2.Id]. Когда я пытаюсь получить доступ к идентификатору пользователя через таблицу ролей, которая выглядит как Context.Roles.Users coz Users, вот внешний ключ для таблицы ролей.

0
Rohit 18 Дек 2014 в 13:52

2 ответа

Лучший ответ

Попробуйте это для приведенного выше примера

var result = from tb1 in context.Users
             from tb2 in tb1.Roles
             join tb3 in context.Roles on tb2.RoleId equals tb3.Id
             orderby tb1.UserName, tb3.Name /*optional*/
             select  new { tb3.Name, tb1.UserName }

Но для удовлетворения ваших требований:

var result = from tb1 in context.Users
             from tb2 in tb1.Roles
             join tb3 in context.Roles on tb2.RoleId equals tb3.Id
             where tb3.Name == "Administrator"
             select  tb1.Id
2
Van 19 Дек 2014 в 06:13

Столбец Maitain [AspNetRoles.[Id] в качестве первичного ключа и столбец [AspNetUsers].[Id] в качестве внешнего ключа. Давайте напишем такой запрос

var result = (from R in context.AspNetRoles
             join U in context.AspNetUsers
             ON R.Id equals U.Id
             select new{
             RoleName=R.Name,
             UserName=U.UserName});
0
shankar.parshimoni 19 Дек 2014 в 06:14