Mit VS 2015, MVC 6 RC1 und EF 7 RC1 Ich versuche, eine Liste aller Benutzer mit ihren einzelnen Rollennamen zu erhalten.Liste der Benutzer mit ihrer einzigen Rolle in MVC 6 links beigetreten
Ich habe alle Vorschläge ausprobiert, die ich auf StackOverflow gefunden habe, aber keiner hat funktioniert.
Die SQL ich suche ist:
SELECT [User].[Email], [Role].[Name]
FROM [User]
LEFT JOIN [UserRoles] ON [User].[Id] = [UserRoles].[UserId]
LEFT JOIN[Role] ON [UserRoles].[RoleId] = [Role].[Id]
ich geschrieben habe, die unten und getestet auf LinqPad (funktioniert gut) und sollte in meinem Projekt gearbeitet haben, kommt aber mit einem Fehler auf:
var q1 = (from user in _context.Users
join ur in _context.UserRoles on user.Id equals ur.UserId into grp1
from fgrp1 in grp1.DefaultIfEmpty()
join r in _context.Roles on fgrp1.RoleId equals r.Id into grp2
from fgrp2 in grp2.DefaultIfEmpty()
select new { UserEmail = user.Email, UserRoleName = fgrp2.Name }).ToList();
Und die Fehlermeldung lautet:
An unhandled exception occurred while processing the request.
InvalidOperationException: Sequence contains no elements
System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
ich weiß nicht, ob es einen Unterschied macht, aber ich habe cr meine eigene Rolle Entity eated als:
public class ExtranetRole : IdentityRole<int> { }
und meine eigene User-Einheit als:
public class ExtranetUser : IdentityUser<int> { }
Jede Hilfe/Vorschläge sehr geschätzt.
Danke es sieht aus wie es ist ein Bug mit linken Joins. Ich habe erwartet, dass etwas so Grundlegendes an einer RC1 arbeitet. – GeoDev