Entity Framework로 작업할 때 행을 업데이트하는 논리를 구현하는 효율적인 방법이 있습니다. 존재하거나 새 행을 삽입합니다.
첨부 객체
첨부된 객체(현재 컨텍스트 인스턴스에서 로드된 객체)를 처리하는 경우 다음 접근 방식을 사용하십시오.
if (context.ObjectStateManager.GetObjectStateEntry(myEntity).State == EntityState.Detached) { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
객체가 자동으로 변경 사항을 추적하고 SaveChanges() 호출은 필요에 따라 업데이트 또는 삽입 작업을 수행합니다.
키가 있는 연결되지 않은 개체 확인
객체의 키 값을 사용할 수 있는 경우 다음 코드를 사용할 수 있습니다.
if (myEntity.Id != 0) { context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified); } else { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
이 접근 방식은 먼저 Id 속성을 사용하여 객체가 존재하는지 확인합니다. 그렇다면 이를 컨텍스트에 첨부하고 수정된 것으로 표시합니다. 그렇지 않으면 새 개체가 추가됩니다.
키 확인 없이 연결되지 않은 개체
키로 개체의 존재를 확인할 수 없는 경우 조회 쿼리를 사용하세요. :
var id = myEntity.Id; if (context.MyEntities.Any(e => e.Id == id)) { context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified); } else { context.MyEntities.AddObject(myEntity); } context.SaveChanges();
이 접근 방식은 객체의 키와 일치하는 행을 데이터베이스에서 가져와 첨부 또는 추가를 기반으로 수행합니다. 쿼리 결과에 대해.
위 내용은 Entity Framework에서 행을 효율적으로 업데이트하거나 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!