0
난 일부 속성은 내가에만여러 탐색 속성 만 업데이트하는 방법은 무엇입니까?
난 일부 속성은 내가에만여러 탐색 속성 만 업데이트하는 방법은 무엇입니까?
AdminRole이 테이블을 업데이트 할 같은 관리자 역할 AdminRole이 처럼 많은 관계에만 많은에 탐색 속성을 업데이트 할, 방법
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 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();
을 방금 관리자와 역할에 대한 키를 알아야합니다.
주 : 이는 실제 키가 들어있는 접합 테이블이있는 실제 다 대다가있는 경우를위한 것입니다.
SystemAdmin entity = base.GetByKey (admin.SAID); DbEntityEntry 항목 = base.DataContext.Entry (엔터티); entity.AdminRoles.Clear(); entry.Collection (a => a.AdminRoles) .CurrentValue = admin.AdminRoles; –
user895367