Identity 2.0 Вземете Rolename и UserName от Linq

Качих две изображения.

  1. Изображение, показващо моя edmx във визуално студио 2013.
  2. Изображение, показващо моите маси в ssms.

Просто исках да покажа RoleName(Colmun [Name] в AspNetRoles Table) с UserName(Colmun [UserName] в AspNetUsers Table) в проста таблица (html) Преглед, т.е. потребител с всички съответни роли. Как мога да направя това с помощта на 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]. Когато се опитвам да осъществя достъп до UserID чрез таблица с роли, която идва като Context.Roles.Users coz Users тук има чужд ключ за таблица с роли.


person Rohit    schedule 18.12.2014    source източник


Отговори (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
person Van    schedule 19.12.2014

Поддържайте [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});
person shankar.parshimoni    schedule 19.12.2014
comment
използвам първи подход към базата данни и таблицата, която описвате в заявката, е достъпна само чрез обекти, а не чрез контекст и ми връща изключение UnintentionalCodeFirstException. Не познавам проблема, но все пак благодаря за отговора - person Rohit; 19.12.2014