我已经实现了一个基于 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();
}
}
任何帮助将不胜感激。谢谢。