С помощью связей RoleUsers.RolePtr <-> Roles.RoleId и RoleUsers.UserPtr <-> Users.UserId создана связь Users к Roles — многие ко многим.
Не могу сообразить, как сформулировать запрос чтобы получить сводную таблицу со всеми связями Roles и Users, чтобы потом группировкой получить роли конкретного пользователя. Хочется сделать это с наименьшими накладными затратами на приложение (пусть все делает сервер БД).
Если вы говорите именно про EF, то у каждого User будет свойство Roles с коллекцией ролей, и наоборот, где автоматически сгруппированы нужные вам данные. Запрос можно написать так:
var query = DbContext.Users.Include(x => x.Roles).ToList();