2012-05-06 2 views
10

방금 ​​EntityFramework.dll v4.3을 다운로드했습니다. DbContextObjectContext을 비교하는 여러 가지 질문을 발견했습니다. 하지만 대부분은 2010 년 또는 2011 년 초입니다.'ObjectContext'대신 'DbContext'를 사용하는 것이 항상 좋은가요?

자세한 내용은이 주제를 읽고 싶습니다. 특히 DbContext에 대한 책이 있습니까? 나는 또한 오늘 밤, DbContext의 형제와 비교할 때 ObjectContext의 한계는 무엇인지 알고 싶습니까?

나는 DbContext이 더 적은 속성을 노출한다는 점에서 더 컴팩트하다는 것을 알고 있습니다. 이는 내가 ObjectContext에서 마이그레이션해야 함을 나에게 암시합니다. 그러나이 마이그레이션을 수행하면 모든 기능을 포기할 것입니까? 예를 들어, DbContext에는 STE (셀프 추적 엔티티) 기능이 없다고 읽었습니다. 이것은 여전히 ​​사실이며 그것이 우려입니까?

+0

Entity Framework의 [ 'ObjectContext'와 'DbContext'의 가능한 복제본] (https://stackoverflow.com/questions/9176967/objectcontext-vs-dbcontext-inentent-framework) – DavidRR

답변

16

자세한 내용은이 주제를 읽고 싶습니다. 특히 에 관한 책이 있습니까 DbContext 내 손을 잡을 수 있습니까?

단일 Google 검색어로 답을 얻을 수 있기 때문에 질문이 잘 시작되지 않습니다. excellent book about DbContext 그 자체가 —입니다. 코드 첫 번째 접근법에 대해서는 아무 것도 포함되어 있지 않지만 실제로는 질문의 요점이 아닙니다.

나는 DbContextObjectContext 비교 질문의 번호를 발견했습니다. 그러나 이들의 대부분은 2010 년부터, 또는 그냥 DbContext + EDMX로 ObjectContext + EDMX를 교체 할 경우 2011 년

초, 비교는 여전히 동일합니다. DbContextObjectContext의 래퍼이며 코드 기능 및 마이그레이션과 관련된 기능을 제외하고 기능 세트가 커지지 않았습니다.

나는 DbContext이 적은 속성을 노출하는 것이 더 컴팩트 한 것으로 알고 있습니다. 이는 내가 옮겨야 할 곳이 ObjectContext입니다.

예, 더 컴팩트 해지고 컨텍스트와 관련된 가장 일반적인 작업이 단순 해집니다. 더 복잡한 작업의 경우 DbContext 인스턴스를 IObjectContextAdapter을 통해 ObjectContext 인스턴스로 변환 할 수 있습니다.

하지만이 마이그레이션을 수행하면 어떤 기능을 포기할 예정입니까? 예제의 경우 DbContext에는 STE (자체 추적 엔티티) 기능이 없다는 것을 읽었습니다. 이것은 여전히 ​​사실이며 그것이 우려입니까?

인트 ObjectContext 만들었습니다 그리고 그것이 DbContext에 이식했다 생각하지 않는다, 그러나 당신은이 기능을 직접 구현하기 위해 시도 할 수 있습니다.

STE는 일부 문제를 해결하기위한 아이디어가 담긴 템플릿입니다.그것은 좋은 이론적 인 해결책으로 보였지만 현실 세계의 시나리오에서는 그다지 좋지 않기 때문에 개발자 커뮤니티는 그다지 잘 받아 들여지지 않았습니다. 템플릿을 개선하거나 포팅하는 대신 다른 중요한 기능이 개발되는 이유이기도합니다.

+4

STE 관련 : "The Entity 프레임 워크 팀은 처음 출시 된 이래로 자체 추적 엔터티 템플릿을 크게 업데이트하지 않았으며 개발자는 WCF 데이터 서비스를보다 강력하고 완벽한 솔루션으로 사용할 것을 권고합니다. " (Julia Lerman의 _DbContext_ p.76) –

관련 문제