Я только что закончил создание настраиваемого поставщика ролей, используя LINQ to SQL для доступа к данным. Одна из функций, которую нужно написать для провайдера, - удалить пользователей из ролей;
public void RemoveUsersFromRoles(string[] usernames, string[] rolenames);
Теперь один подход будет;
- вернуть список ролей
- итерация для каждой роли и удаление этой роли у всех пользователей, имеющих эту роль
Этот подход далеко не эффективен. Я хотел бы знать, есть ли лучшие способы решения этого типа проблем в LINQ to SQL.
Есть ли способ создать оператор выбора в LINQ to SQL, который будет принимать массив строк для сравнения, вместо того, чтобы зацикливаться и делать N выборок? Любой подход лучше, чем я описал выше, будет высоко оценен.
Вовлеченные таблицы:
User (RecordID, Username)
Role (RecordID, Rolename)
UsersInRole (RoleID,UserID)
Спасибо!