Предполагая, что EF моделирует ассоциацию "многие ко многим" со свойством навигации, называемым aspnet_Roles
в пользовательском классе, ваш запрос linq почти верен.Единственная проблема - user.aspnet_Roles.TargetRoleName
, когда вы пытались включить много значений (для имен ролей) для каждого пользователя в ваш выбор.
Помните, что у вас много ролей на пользователя.Таким образом, вы можете попробовать выбрать как
select new { user.UserName, membership.Email, user.aspnet_Roles, membership.CreateDate ...
Обратите внимание, что вы получите коллекцию ролей для каждого пользователя, т.е. users[0].aspnet_roles
будет коллекцией.
Если есть гарантия, что с пользователем всегда будет связана одна роль, вы можете использовать такой синтаксис, как
select new { user.UserName, membership.Email, user.aspnet_Roles.First().TargetRoleName, membership.CreateDate ...
Обратите внимание, что мы выбираем имя первой роли от ролей, связанных с пользователем.Если для пользователя нет роли, метод First()
выдаст исключение.Кроме того, я не уверен, будет ли достаточно выбрать только имя первой роли с точки зрения логики приложения.