Я реализовал LINQ to SQL на основе RoleProvider
, когда я назначаю роль пользователю, следующее исключение выдается при вызове метода AddUsersToRoles
. Я определил составной первичный ключ userid
& roleId
для этой таблицы, он по-прежнему выдает это исключение:
Невозможно выполнить создание, обновление или удаление.
операции над таблицей (UsersInRole)
потому что у него нет первичного ключа.
Моя реализация LinQ to SQL метода AddUsersToRoles
выглядит следующим образом. Это ломается в db.UsersInRoles.InsertOnSubmit(userInRole);
using (RussarmsDataContext db = new RussarmsDataContext())
{
List<UsersInRole> usersInRole = new List<UsersInRole>();
foreach (string username in usernames)
{
foreach (string rolename in rolenames)
{
UsersInRole userInRole = new UsersInRole();
object userId = ProvidersUtility.GetUserIdByUserName(username,applicationName);
object roleId = ProvidersUtility.GetRoleIdByRoleName(rolename,applicationName);
if (userId != null && roleId != null)
{
userInRole.UserId = (Guid)userId;
userInRole.RoleId = (Guid)roleId;
db.UsersInRoles.InsertOnSubmit(userInRole);
}
}
}
try
{
// db.UsersInRoles.InsertAllOnSubmit(usersInRole);
db.SubmitChanges();
}
catch (ChangeConflictException)
{
db.ChangeConflicts.ResolveAll(RefreshMode.OverwriteCurrentValues);
db.SubmitChanges();
}
}
Любая помощь будет оценена.
Спасибо.