MVC Linq выбирает список пользователей с ролью - PullRequest
2 голосов
/ 09 декабря 2010

Что не так с моим запросом ниже? Для этого используются стандартные таблицы членства.

var clientRole = rushDB.aspnet_Roles.Single(r => r.LoweredRoleName == "client" );
        //var users = rushDB.aspnet_Users.Where(u => u.aspnet_Roles.Contains(client)).AsEnumerable();

        var users = from u in rushDB.aspnet_Users
                        where u.aspnet_Roles.Contains(clientRole)
                    select u;

        return View(users.ToList());

Я вижу эту ошибку на мой взгляд ... Невозможно создать постоянное значение типа 'RushToIt.Models.aspnet_Roles'. В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid).

1 Ответ

2 голосов
/ 09 декабря 2010

Я ожидаю, что вы пытаетесь (точнее, LINQ пытается) использовать clientRole в качестве предложения where для оператора select. Вы можете отправлять только простые типы параметров.

Вместо этого вам необходимо оценить встроенную роль.

Однако, вероятно, проще, если вы просто двигаетесь задним ходом (это звучит хорошо, верно?). Вы должны быть в состоянии сделать это:

var clientRole = rushDB.aspnet_Roles.Single(r => r.LoweredRoleName == "client" );
return View(clientRole.aspnet_Users.ToList());
...