我可以在方法
下更新一些属性public void Update(T entity, params Expression<Func<T, object>>[] properties)
{
_dbSet.Attach(entity);
DbEntityEntry<T> entry = _context.Entry(entity);
foreach (var selector in properties) { entry.Property(selector).IsModified = true; }
}
//repo.Update(entity, e => e.Name, e => e.Description);
但是,我想只在多对多关系中更新导航属性 像 admin role adminrole 这样我只想更新adminrole表
答案 0 :(得分:0)
如果您想更新关系,可以使用简单的技巧。
要在管理员和角色之间添加新关系,您需要执行以下操作:
Admin admin = new Admin { Id = adminId };
context.Admins.Attach(admin);
Role role = new Role { Id = roleId };
context.Roles.Attach(role);
// Create new relation on attached entities
admin.Roles.Add(role);
context.SaveChanges();
要删除管理员和角色之间的现有关系,您可以尝试:
Admin admin = new Admin { Id = adminId };
Role role = new Role { Id = roleId };
// Simulate existing relation on detached entities
admin.Roles.Add(role);
context.Admins.Attach(admin);
// Remove existing relation on attached entities
admin.Roles.Remove(role);
context.SaveChanges();
在这两种情况下,您只需要知道管理员和角色的密钥。
注意:这适用于您具有真正的多对多(具有仅包含键的联结表)的情况。