【发布时间】:2011-04-28 18:09:26
【问题描述】:
我首先使用 Entity Framework 代码来为我的用户管理数据库后台存储。我有一个“向用户添加角色”操作,该操作从数据库中提取用户,将该用户添加到角色,然后保存更改。但是,当我这样做时,用户的新副本被插入到数据库中,其 ID (唯一键)与我从数据库中提取的用户不同,我不知道为什么。关于为什么会发生这种情况的任何想法?
IEnumerable<long> usersIdsToGiveRole = from u in vm.UsersNotInSelectedRole where u.IsSelected select u.Id; // say, yields "5"
IEnumerable<User> usersToGiveRole = _userRepository.InternalUsers.Where(u => usersIdsToGiveRole.Contains(u.ID)); // gets user with ID 5
foreach (var user in usersToGiveRole)
{
selectedRole.UsersWithRole.Add(user);
}
_roleRepository.SaveChanges(); // creates new user with ID 6 cloning all other fields of user 5
【问题讨论】:
标签: entity-framework ef-code-first