programing

Visual Studio에서 새 데이터 항목을 추가할 때 EF 6.x DbContext Generator 옵션의 용도

javajsp 2023. 6. 18. 12:10

Visual Studio에서 새 데이터 항목을 추가할 때 EF 6.x DbContext Generator 옵션의 용도

LINQ to SQL을 사용하여 구축한 웹 앱이 있는데, LINQ to Entity Framework로 업그레이드하려고 합니다.몇 가지 튜토리얼을 살펴보았는데, 제가 배운 것은 기본적으로 데이터베이스 우선 시나리오에서 ADO.NET 엔티티 데이터 모델을 생성한다는 것입니다.그런 다음 모델에 포함할 테이블을 선택합니다(LINQ에서 SQL과 매우 유사).

Add New Item( 항목 추가) 대화 상자에서 EF 6.x DbContext Generator를 생성하는 다른 옵션이 있습니다.

Visual Studio Add New Item dialog

ADO.NET Entity Data Model(대화 상자의 첫 번째 옵션)과 비교하여 EF 6.x DbContext Generator의 목적은 무엇입니까?그리고 EF 6.x DbContext Generator의 용도는 무엇입니까?텍스트 파일을 만드는 것 같습니다.어떻게 해야 하나요?

DbContext Generator는 ObjectContext를 훨씬 간단하고 짧은 코드로 대체하여 Entity 개체를 데이터베이스 개체에 연결합니다.30개의 필드가 있는 단일 데이터베이스 테이블은 약 800줄의 코드를 ObjectContext로 나타내지만 DbContextGenerator에 의해 생성된 DbContext 및 클래스로 이해하기 쉬운 코드를 약 40줄로 나타냅니다.

DbContext Generator는 두 개의 파일을 만듭니다.

  1. 연결 문자열 세부 정보와 각 테이블에 대한 DbSet가 있는 DbContext를 만듭니다.

  2. 각 테이블을 나타내는 클래스를 만듭니다.이러한 .tt 폴더를 열면 생성된 DbContext 및 클래스를 볼 수 있습니다.이러한 클래스는 컨트롤러 작업에서 참조하여 수행할 필요가 없습니다.

자세한 내용은 http://msdn.microsoft.com/en-US/data/jj206878 에서 확인할 수 있습니다.

나는 이것이 EntityFramework 및 발전기와 관련된 필수 기사라고 생각합니다.

MSDN 문서

다음은 이 기사의 소개입니다.

Entity Framework Designer를 사용하여 모델을 만들면 클래스와 파생 컨텍스트가 자동으로 생성됩니다.기본 코드 생성 외에도 생성되는 코드를 사용자 지정하는 데 사용할 수 있는 여러 템플릿도 제공합니다.이러한 템플리트는 필요한 경우 템플리트를 사용자 정의할 수 있도록 T4 텍스트 템플리트로 제공됩니다.

일반적으로 이러한 생성기는 DB 모듈을 LinkqToSQL에서 EntityFramework로 변환하지 않습니다.
완전한 데이터베이스가 있는 경우(Linq2SQL 기반의 모듈로 제공된다고 가정) ADO.NET Entity Data Model(새 항목 추가: EDMX)을 사용하고 'Generate from database(추가 후 VS Wizard)'를 선택하는 것이 좋습니다.

데이터베이스가 이미 있는 경우, 접근 방식이 이미 LinkqToSQL에서 작업 중인 접근 방식과 매우 유사하기 때문에 첫 번째 옵션이 더 좋습니다..EDMX 파일을 사용하면 데이터베이스를 그래픽으로 시각화할 수 있으므로 다른 문제는 걱정할 필요가 없습니다.

DB First에는 두 가지 방법이 있습니다. 하나는 EDMX 파일을 포함하는 것이고, 다른 하나는 역엔지니어링을 사용하여 첫 번째 POCO를 코딩하는 것입니다.

EDMX 파일이 있는 경우 엔티티를 생성하는 데 사용되는 생성기를 설치하고 몇 가지 옵션을 사용할 수 있습니다.하나는 DbContext이고 다른 하나는 ObjectContext를 기반으로 개체를 생성하는 EntityObject 생성기입니다.

첫 번째 옵션은 EF(모든 버전)와 함께 작업할 Model-First 파일을 만듭니다. 이 파일을 기존 데이터베이스에서 업데이트(또는 구성)할 수 있도록 선택한 경우 두 번째 옵션을 선택하면 Code-First EF로 작업하기 위한 솔루션을 구축할 수 있는 해당 파일을 생성할 수 있는 기능이 제공됩니다.

제 경험에 따르면, 두 번째 선택은 가치 있는 선택이 아니며 Code-First EF로 작업하기로 결정했다면 깨끗한 파일을 열고 자유롭게 코드를 작성하고 Code-First와 그 규약에서 제공하는 최대의 유연성을 누릴 것을 강력히 권장합니다.

언급URL : https://stackoverflow.com/questions/22791170/purpose-of-ef-6-x-dbcontext-generator-option-when-adding-a-new-data-item-in-visu