У меня есть 4 таблицы: «Пользователи», «Роли», «Фотографии» и «Отношения пользователей».Таблицы Users & Roles - это таблицы идентификационных серверов. Я хочу знать, что я хочу вернуть список пользователей с именами их ролей. Я могу получить другие детали, но я застрял при получении имени Role.
вот скриншоты таблиц, созданных мной
Фотографии Нажмите здесь, чтобы посмотреть изображение
UserRelationships Нажмите здесь, чтобы посмотреть изображение
это код, который я пробовал
var relations = await (from relation in _context.UserRelationships
where (relation.RelatingUserId == id || relation.RelatedUserId == id)
&& (relation.Status == UserRelationShipStatus.Active)
&& (relation.Type != UserRelationshipType.Blocked)
select new
{
RelationId = relation.Id,
User = relation.RelatedUserId == id ? (from usr in _context.Users
join photo in _context.Photos on usr.Id equals photo.UserId
where usr.Id == relation.RelatingUserId && photo.IsMain == true
select new
{
UserId = usr.Id,
UserName = usr.UserName,
PhotoUrl = photo.Url,
Role = ?
})
: (from usr in _context.Users
join photo in _context.Photos on usr.Id equals photo.UserId
where usr.Id == relation.RelatedUserId && photo.IsMain == true
select new
{
UserId = usr.Id,
UserName = usr.UserName,
PhotoUrl = photo.Url,
Role = ?
})
}
).ToListAsync();
То, что я делаю здесь, в моей таблице UserRelationships содержит два поля под названием RelatingUserId & RelatedUserId.It означает, что отношения отправляют пользователя и полученного пользователя.Если переданный UserId равен одному из этих полей, то я хочу получить данные этого пользователя. Я хочу знать, как при получении роли пользователя это сделать.
спасибо в продвинутом