2008-09-27 9 views
7

나는 최근에 그들이 DataContext를 사용을 참조하십시오으로 question about tracing Linq-to-EntitiesLINQ-to-Entities (Linq-to-SQL이 아님)에 DataContext가 있습니까?

내가, one of the answers 잘 아니라고 생각 물었다. LINQ-to-Entities 용 DataContext가 있습니까? 그렇다면 어떻게 얻을 수 있습니까?

+1

을 항목 - 추가의 DataContext는 DbContext와 혼동해서는 안됩니다 Entity Framework 4.1에서 찾을 수 있습니다 :-) –

답변

10

LINQ to Entities는 DataContext가 아니라 ObjectContext를 사용합니다. 쿼리가 개체 서비스 인프라를 사용하는 엔티티에

LINQ to Entities, the ObjectContext Class, and the Entity Data Model

LINQ : 여기

짧은 EF의 설명이다. ObjectContext 클래스는 EDM과 CLR 개체로 상호 작용하는 기본 클래스 입니다. 개발자는 ObjectContext를 통해 ObjectQuery 인스턴스를 생성합니다. 일반 ObjectQuery 클래스는 입력 된 엔터티의 인스턴스 또는 컬렉션 을 반환하는 쿼리를 나타냅니다. ObjectQuery에 의해 반환 된 엔터티 개체는 개체 컨텍스트에 의해 추적되며 SaveChanges 메서드를 사용하여 업데이트 할 수 있습니다.

LINQ to SQL의 DataContext와 같은 방식으로 작동하지 않습니다. 연결을 관리하고 변경 내용을 추적하는 것은 사실이지만 데이터 구조와 관계를 모델링하는 방법이 다릅니다.

LINQ to SQL이 "엔터티"에 대한 참조를 작성하고 EF에 익숙하지 않은 사람이 자신이 말하는 내용을 알고 있다고 생각할 수 있기 때문에 나는 그 잘못된 대답의 포스터를 줄 것입니다. 예를 들어

:

LINQ to SQL and the DataContext Class

DataContext를 데이터베이스 연결을 통해 매핑 된 모든 엔티티의 소스입니다. 그것은 트랙은 모든 검색 엔티티에게 을 만들어 엔티티가 같은 개체 인스턴스를 사용하여 표시됩니다 한 번 이상 검색 보장에 "정체성을 캐시"를 유지한다 변경됩니다.

혼란 스러울 수 있습니다.

5

분명히 LinqToEntities는 DataContext 대신 ObjectContext을 사용합니다.

개체 팀이 DataContext를 만들었고 데이터 팀이 ObjectContext를 만들고 (DataQuery 대 ObjectQuery 등) "이름이 어렵다!"라는 말은 재미있었습니다. LinqToEntities 작업을 할 때


업데이트, EF4.1와 .NET 4, 당신은 또한 DbContext에 관심이있을 수 있습니다. also을 참조하십시오.

0

이러한 임의 구문의 차이점이 인 입니다. 예 : SubmitChanges (L2S) 및 SaveChanges (L2E)를 참조하십시오. 그러나 이것이 바로 두 기술의 차이점 일뿐입니다.

1

.ADM.NET 엔터티 데이터 모델 (.edmx 파일 - .dbml 파일과 유사 함)을 언급 한 것 같습니다. 그것은 에서 볼 수 있습니다 VS에서

(문제가 된 몇 년) 지금이 질문을보고 사람들을 위해> ADO.NET 엔터티 데이터 모델

관련 문제