엔티티를 수신 한 다음 업데이트해야하지만 추적 할 필요가 없으므로 컨텍스트에 다시 첨부 할 수 있습니다.엔티티 프레임 워크 모델에서 추적 기능을 먼저 끕니다.
본인은 EntityFramework.dll
(4.1)을 가지고 있습니다. 모델에서 데이터베이스를 생성했습니다. (코드 우선이 아님).
가져 오기 사용자 :
db.Users.MergeOption = MergeOption.NoTracking;
IQueryable<User> query = db.Users;//.AsNoTracking(); //<-- apparently, this is code-first only.
return query;
업데이트 사용자 :
db.Users.Attach(user); //error here.
ObjectStateEntry entry = db.ObjectStateManager.GetObjectStateEntry(user);
entry.SetModifiedProperty(propertyName);
db.SaveChanges();
return user;
오류 : 내가 전화
An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.
이 같은 방법
var user = userRepository.GetUsers().FirstOrDefault(u => u.UserId == userId);
user.Identifiers.Add(someIdent);
userRepository.UpdateUser(user);
그래야합니다. 다른 검색어로 사용자를받지 못하셨습니까? –
@ 라디 슬라브 동일한 검색어. 난 단지 1 읽기/그 코드를 사용하는 저장소에 방법을 얻을 –
난 그냥 모든 저장소 부담없이 비슷한 코드를 테스트하고 그것은 나를 위해 작동합니다. –