2016-07-28 3 views
0

SaveChanges를 반영하지 SaveChanges를이엔티티 프레임 워크 - 데이터베이스

나는 내가 상태를 설정해야 어딘가에 다음 코드

public async Task<int> Post([FromBody] UserEntry userEntry) 
{ 
    UserEntry dbUserEntry; 

    using (DBContext db = new DBContext()) 
    { 
     // update 
     dbUserEntry = this.db.UserEntries 
        .Where(u => u.UserEntryID == userEntry.UserEntryID) 
        .Include(u => u.EntryPlayers.Select(y => y.Player)) 
        .FirstOrDefault(); 

     dbUserEntry.TeamName = userEntry.TeamName; 
     dbUserEntry.EntryPlayers = userEntry.EntryPlayers; 

     //db.Entry(dbUserEntry).State = EntityState.Modified; 
     return db.SaveChanges(); 
    } 

}

을 읽고 데이터베이스에 반영되지 않는 수정하지만 줄의 주석을 제거하면

//db.Entry(dbUserEntry).State = EntityState.Modified;

나는 오류를 얻을 : -

엔티티 객체는 IEntityChangeTracker의 여러 인스턴스에서 참조 할 수 없습니다.

SaveChanges를 작동시키는 방법에 대한 아이디어가 있으십니까? 대신 FirstOrDefault의

+3

은''dbUserEntry = this.db.UserEntries'에서 this' 오타인가? 왜냐하면 그것이 아니라면 그것은 당신의 문제입니다. 컨트롤러에 다른 컨텍스트를 정의했을 수도 있습니다. – SOfanatic

+0

AutoDetectChanges를 활성화 했습니까? –

+0

감사합니다. 네가 옳아. 오류를 복사하여 다른 위치에서 붙여 넣습니다. 감사 – David

답변

1

사용 찾기() 메소드는()

dbUserEntry = this.db.UserEntries 
       .Include(u => u.EntryPlayers.Select(y => y.Player)) 
       .Find(u => u.UserEntryID == userEntry.UserEntryID) 
관련 문제