我创建了一个函数来更新数据库中的记录,如下所示:
Users (UserId, Name)
UsersRoles (UserId, RoleId)
Roles (RoleId, Name)
我将 parameter_user 和 parameter_role 传递给函数。如果它们在各自的表中,则更新数据。但是,它不会更新数据,而是每次都放入它们。
因此,如果表 UsersRoles 如下所示:
10 25
10 23
10 28
11 25
11 32
我想将第 10 23 行更新为 10 27,它添加了一条记录 10 27,但它留下了 10 23。我猜你不能改变,因为它是一个双 FK。但是如何删除旧记录 10 23?
功能是这样的:
var user = (from r in context.Users where r.UserId.Equals(parameter_user) select r).FirstOrDefault();
Roles role;
if (parameter_role > 0)
{
role = (from r in context.Roles where r.RoleId.Equals(parameter_role) select r).FirstOrDefault();
if (role == null) return false;
if (user != null)
{
role.Users.Add(user);
}
role.Name = "Paul";
}
非常感谢再见