2011-08-15 4 views

답변

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(); 

을 방금 관리자와 역할에 대한 키를 알아야합니다.

주 : 이는 실제 키가 들어있는 접합 테이블이있는 실제 다 대다가있는 경우를위한 것입니다.

+0

SystemAdmin entity = base.GetByKey (admin.SAID); DbEntityEntry 항목 = base.DataContext.Entry (엔터티); entity.AdminRoles.Clear(); entry.Collection (a => a.AdminRoles) .CurrentValue = admin.AdminRoles; – user895367

관련 문제