데이터베이스 스키마 변경 후 LINQ를 SQL 클래스로 업데이트하는 가장 좋은 방법

StackOverflow https://stackoverflow.com/questions/40022

  •  09-06-2019
  •  | 
  •  

문제

저는 데이터베이스 디자인이 여전히 유동적인 프로젝트에서 LINQ to SQL 클래스를 사용하고 있습니다.

클래스를 스키마와 쉽게 동기화할 수 있는 방법이 있습니까? 아니면 테이블 디자인이 변경되면 클래스를 수동으로 업데이트해야 합니까?

도움이 되었습니까?

해결책

SQLMetal.exe를 사용하여 dbml 및/또는 cs/vb 파일을 생성할 수 있습니다.사전 빌드 스크립트를 사용하여 이를 시작하고 datacontext 프로젝트가 속한 디렉터리를 대상으로 지정합니다.

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\sqlmetal.exe 
  /server:<SERVER> 
  /database:<database> 
  /code:"path\Solution\DataContextProject\dbContext.cs" 
  /language:csharp 
  /namespace:<your namespace>

다른 팁

제가 직접 해보진 않았지만 Huagati DBML/EDMX 도구 다른 사람들이 추천합니다.

Huagati DBML/EDMX 도구는 Visual Studio 2008의 LINQ2SQL/DBML 다이어그램 디자이너와 Visual Studio 2008 SP1의 ADO.NET Entity Framework Designer에 기능을 추가하는 Visual Studio 용 추가 기능입니다.추가 기능은 데이터베이스 변경으로 LINQ2SQL 디자이너 다이어그램을 업데이트하고 LINQ-to-SQL (DBML) 및 EF (EDMX) 클래스 및 속성을 .NET 명명 규칙을 사용하여 LINQ에 문서/설명을 추가하기위한 새로운 메뉴 옵션을 추가합니다. -to-sql 데이터베이스 속성에서 클래스를 생성했습니다.

Screenshot of DBML Tools

다음은 추가 소프트웨어 없이 간단한 변경(예: 추가된 필드, 소수의 테이블 등)에만 작동하는 쉬운 수정 방법입니다.

지침:

  • 변경된 테이블의 복사본을 디자이너로 가져옵니다(나중에 제거됨).
  • 이제 새로운(또는 변경된) 필드를 모두 선택하고 (right-click ->) copy
  • 원본 테이블에서 마우스 오른쪽 버튼을 클릭하고 insert (변경된 필드를 먼저 삭제하세요)
  • 이제 복사한 테이블을 삭제하세요.

나는 그것이 다소 명백하다는 것을 알고 있지만 다소 직관적이지 않으며 모든 올바른 속성과 유형이 복사되고 모든 링크가 그대로 유지되므로 많은 도움이 되었습니다.도움이 되길 바랍니다.

사용 시기:

물론, 말했듯이 작은 변경의 경우에는 그렇습니다. 그러나 많은 링크가 있는 테이블을 수동으로 교체하거나 SQLMetal에 의해 생성된 전체 데이터베이스 구조를 원하지 않는 경우에는 확실히 더 좋습니다.예를 들어 테이블 수가 많은 경우(예:SAP) 또는 다른 데이터베이스의 교차 연결된 테이블을 사용하는 경우.

DamienG가 일부 글을 작성했습니다. t4 템플릿 이는 VS가 생성하는 것 중 일부를 대체할 수 있습니다.명령줄 도구를 통해 언제든지 다시 실행할 수 있습니다.

T4 템플릿에는 편집이 가능하다는 추가적인 이점이 있습니다.이를 통해 하트 콘텐츠에 생성되는 내용을 조정할 수 있습니다.

내 생각엔 Jeff가 최근에 이것에 대해 불평한 것 같아요.일반적인 기술 중 하나는 모든 개체를 디자이너로 다시 끌어오는 것입니다.

다른 사람이 더 나은 접근 방식으로 차임하기를 바랍니다!

Dbml 스크립트에 대한 스크립트 변경을 수행하는 도구를 작성했습니다. http://code.google.com/p/linqtodbmlrunner/ 그리고 내 블로그 http://www.adverseconditionals.com

Visual Studio 내 DataContext 디자인 화면 내에서 엔터티/테이블의 속성을 수정하는 것은 어떻습니까?

예를 들어 SQL Server 테이블에 열을 추가한 경우:

  1. *.dbml 파일을 엽니다.
  2. 엔터티를 마우스 오른쪽 버튼으로 클릭하고 추가 > 속성을 ​​선택합니다.
  3. 새 열의 속성 창에 값을 입력합니다.
  4. 솔루션을 구축하세요.

자동 생성된 모델 클래스는 추가된 새 열을 반영해야 합니다.

enter image description here

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top