연결이 끊긴 엔터티 사용Working with disconnected entities

Entity Framework 기반 애플리케이션에서 컨텍스트 클래스는 추적된 엔터티에 적용된 변경 내용을 검색합니다.In an Entity Framework-based application, a context class is responsible for detecting changes applied to tracked entities. SaveChanges 메서드를 호출하면 컨텍스트에서 추적한 변경 내용이 데이터베이스에 유지됩니다.Calling the SaveChanges method persists the changes tracked by the context to the database. n 계층 애플리케이션을 작업할 때 엔터티 개체는 일반적으로 컨텍스트와 연결이 끊어진 동안 수정되므로 변경 내용을 추적하고 변경 내용을 컨텍스트에 보고하는 방법을 결정해야 합니다.When working with n-tier applications, entity objects are usually modified while disconnected from the context, and you must decide how to track changes and report those changes back to the context. 이 토픽에서는 엔터티 연결이 끊어진 Entity Framework를 사용할 때 제공되는 여러 옵션을 알아보겠습니다.This topic discusses different options that are available when using Entity Framework with disconnected entities.

웹 서비스 프레임워크Web service frameworks

웹 서비스 기술은 일반적으로 연결이 끊어진 개별 개체의 변경 내용을 유지하는 데 사용할 수 있는 패턴을 지원합니다.Web services technologies typically support patterns that can be used to persist changes on individual disconnected objects. 예를 들어 ASP.NET Web API는 데이터베이스 개체의 변경 내용을 유지하기 위한 EF 호출을 포함할 수 있는 컨트롤러 동작을 코딩할 수 있습니다.For example, ASP.NET Web API allows you to code controller actions that can include calls to EF to persist changes made to an object on a database. 사실, Visual Studio의 Web API 도구를 사용하면 Entity Framework 6 모델의 Web API 컨트롤러를 간단하게 스캐폴드할 수 있습니다.In fact, the Web API tooling in Visual Studio makes it easy to scaffold a Web API controller from your Entity Framework 6 model. 자세한 내용은 Entity Framework 6에 Web API 사용을 참조하세요.For more information, see using Web API with Entity Framework 6.

WCF Data ServicesRIA Services처럼 Entity Framework와의 통합을 제공하는 여러 가지 다른 웹 서비스 기술이 있습니다.Historically, there have been several other Web services technologies that offered integration with Entity Framework, like WCF Data Services and RIA Services.

하위 수준 EF APILow-level EF APIs

기존 n 계층 솔루션을 사용하지 않으려는 경우 또는 Web API 서비스의 컨트롤러 작업 내에서 발생하는 동작을 사용자 지정하려는 경우를 위해 Entity Framework는 연결이 끊긴 계층의 변경 내용을 적용할 수 있는 API를 제공합니다.If you don't want to use an existing n-tier solution, or if you want to customize what happens inside a controller action in a Web API services, Entity Framework provides APIs that allow you to apply changes made on a disconnected tier. 자세한 내용은 추가, 연결 및 엔터티 상태를 참조하세요.For more information, see Add, Attach, and entity state.

자동 추적 엔터티Self-Tracking Entities

EF 컨텍스트와의 연결이 끊어진 동안 엔터티의 임의 그래프 변경 내용을 추적하기란 매우 어려운 문제입니다.Tracking changes on arbitrary graphs of entities while disconnected from the EF context is a hard problem. 이 문제를 해결하기 위한 시도 중 하나는 자동 추적 엔터티 코드 생성 템플릿이었습니다.One of the attempts to solve it was the Self-Tracking Entities code generation template. 이 템플릿은 엔터티 자체의 상태에 따라 연결이 끊긴 계층의 변경 내용을 추적하는 논리가 포함된 엔터티 클래스를 생성합니다.This template generates entity classes that contain logic to track changes made on a disconnected tier as state in the entities themselves. 이러한 변경 내용을 컨텍스트에 적용하기 위한 확장 메서드 집합도 생성됩니다.A set of extension methods is also generated to apply those changes to a context.

이 템플릿은 EF 디자이너를 사용하여 만든 모델에 사용할 수 있지만, Code First 모델에는 사용할 수 없습니다.This template can be used with models created using the EF Designer, but can not be used with Code First models. 자세한 내용은 자체 추적 엔터티를 참조하세요.For more information, see Self-Tracking Entities.

중요

자동 추적 엔터티 템플릿을 더 이상 권장하지 않습니다.We no longer recommend using the self-tracking-entities template. 이 템플릿은 기존 애플리케이션을 지원하는 용도로만 제공될 것입니다.It will only continue to be available to support existing applications. 애플리케이션에서 연결이 끊긴 엔터티 그래프를 사용해야 하는 경우 커뮤니티에서 적극적으로 개발한 자동 추적 엔터티와 비슷한 기술인 추적 가능 엔터티 같은 다른 대안을 고려하거나 하위 수준 변경 내용 추적 API를 사용하여 사용자 지정 코드를 작성하는 방법을 고려해 보세요.If your application requires working with disconnected graphs of entities, consider other alternatives such as Trackable Entities, which is a technology similar to Self-Tracking-Entities that is more actively developed by the community, or writing custom code using the low-level change tracking APIs.