>백엔드 개발 >C++ >Entity Framework에서 행을 효율적으로 업데이트하거나 삽입하는 방법은 무엇입니까?

Entity Framework에서 행을 효율적으로 업데이트하거나 삽입하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-06 18:28:45936검색

How to Efficiently Update or Insert Rows in Entity Framework?

행이 존재하는 경우 업데이트하고, 그렇지 않으면 Entity Framework에 논리를 삽입

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.