Ich muss ein "Benutzer" -Objekt aus mehreren Tabellen erstellen, und ich möchte dies in einer EF-Abfrage tun.Verknüpfen Sie mehrere Tabellen mit verschachtelten Typ in Unterabfragen
Hier ist meine aktuelle Abfrage, aber ich weiß nicht, wie Sie die "Rollen", "Gruppen" & "Permissions" -Eigenschaften ausfüllen, das sind übrigens Listen.
cachedUsers = (from u in dbContext.Application_Users
join ug in dbContext.Application_UserGroups on u.UserID equals ug.UserID
join g in dbContext.Application_Groups on ug.GroupID equals g.GroupID
join gr in dbContext.Application_GroupRoles on g.GroupID equals gr.GroupID
join r in dbContext.Application_Roles on gr.RoleID equals r.RoleID
join rp in dbContext.Application_RolePermissions on r.RoleID equals rp.RoleID
join p in dbContext.Application_Permissions on rp.PermissionID equals p.PermissionID
select new SecurityUser()
{
ID = u.UserID,
UserName = u.UserName,
Roles = /*how to fill the list ? */(new Role
{
RoleID = r.RoleID,
RoleLevel = r.RoleLevel,
RoleName = r.RoleName,
Description = r.Description,
Trigram = r.Trigram,
Groups = /*how to fill the list ? */(new SecurityGroup
{
GroupID = g.GroupID,
GroupName = g.GroupName,
RoleName = r.RoleName,
}).ToList(),
Permissions = /*how to fill the list ? */(new Permission
{
PermissionID = p.PermissionID,
ConstantName = p.ConstantName,
Title = p.Title
})
.ToList()
}).ToList()
}
).ToList();
Können Sie mir dabei helfen?
Vielen Dank! :)
ich ein wenig ändern benötigt Ihre Antwort aber das 'von cnew in celft.DefaultIfEmpty()' hilft mir, die Lösung zu finden. Danke vielmals :) – Mica