2

새 프로젝트 작업을 시작했으며 LinqToSQL에서 EF 4.1을 ORM으로 전환했습니다.EF 4.1에서 DbContext와 Database First 사용하기

이미 데이터베이스가 작동하도록 설정되어 있으므로 데이터베이스의 첫 번째 접근 방식을 사용하고 있습니다. 기본적으로 EF는 ObjectContext까지 확장되는 컨텍스트를 생성합니다. 좋은 접근 방식이 DbContext으로 바뀌는 지 알고 싶었습니다.

대부분의 사용 가능한 예제는 코드 우선 만 처리하고 DbContext을 처리하지만 DBContext은 데이터베이스 처음에도 사용할 수 있습니다. DBContext를 사용하여 얻을 수있는 이점이 있습니까? 내가 읽은 바로는 DBContext는 ObjectContext의 단순화 된 버전이며 작업하기가 더 쉽습니다. 다른 장점이나 단점이 있습니까?

답변

3

수동으로 아무것도 교체하지 않습니다. VS Gallery에서 DbContext T4 Generator를 사용할 수 있어야합니다. 자동 생성 된 파일을 만지지 마십시오. EDMX 파일을 수정할 때마다 변경 사항이 손실됩니다.

작년에 similar question으로 대답했습니다. 지금은 내 대답은 대부분 - 새로운 사용자를위한 DbContext API는 아마도 더 낫다. DbContext API는 사용법 및 기능 측면에서 단순화되었지만 DbContext에서 ObjectContext을 가져올 수 있으며 ObjectContext API에서만 사용할 수있는 기능을 사용할 수 있습니다. 반면 DbContext API에는 몇 가지 추가 성능 영향과 추가 버그 레이어가 있습니다. 간단한 프로젝트에서는 DbContext API에서 어떤 단점도 발견하지 못할 것입니다. 성능에 영향을주지 않으며, ObjectContext에서만 사용할 수있는 모서리 기능을 사용하지 않으며 가끔 버그의 영향을받지 않습니다.

DbContext API가 출시 된 이후 많은 정보와 블로그 게시물이 수집되어 API에 대한 설명을 찾을 까봐 두려워 할 필요가 없습니다. 또한 ADO.NET 팀은 DbContext API를 플래그 함으로 사용합니다.

저는 DbContext API에 대한 열렬한 팬이 아니지만 제 의견은 API의 기능과 관련이 없지만 그 존재와 관련이 있습니다. ADO.NET 팀의 두 가지 API 및 분할 용량을 유지 관리하고 수정할 필요가 없습니다. 같은 일을하는 API. 정말 새로운 기능의 구현을위한 용량이 적다는 것을 의미합니다.

+0

링크가 도움이되었습니다. 두 개의 T4 템플릿 파일을 추가하고, poco 엔티티의 템플릿 파일을 삭제하고, 많은 작업을 수행하지 않고도 POCO 엔티티를 사용할 수 있도록 DbContext 생성기를 사용할 수 있습니다. – nighthawk457

+0

POCO 엔티티 (명명 규칙)를 생성하려면 [규칙] (http://msdn.microsoft.com/en-us/library/dd456853.aspx)을 엄격히 따라야하지만, –

1

저는 기존 응용 프로그램에 대한 추가 기능으로 Oracle과 함께 사용하고 있습니다. Ladislav가 언급하는 단순화는 시간과 자원이 부족하기 때문에이 프로젝트에서 나에게 잘 맞습니다. 간단한 CRUD 작업과 ~ 150 개 이하의 테이블을 사용하는 한 어떤 문제도 발견하지 못했습니다.

메타 데이터 주석을 사용하여 기본 유효성 검사 및 현지화를 제공 할 수 있으며 충분한 문서가 있지만 공식 Microsoft 사이트에서는 많은 정보를 찾을 수 없습니다.

관련 문제