2010-03-22 3 views
24

현재 C# 및 LINQ를 배우고 있습니다. 나는 그들에 관해 많은 질문을 가지고있다. 기본적으로 단계별 자습서가 필요합니다.C# dbml 파일의 출처는 어디입니까?

  1. dbml 파일이 데이터베이스의 구성 파일이라고 가정합니다. dbml 파일을 두 번 클릭하면 VS가 디자인 다이어그램에서 열립니다. 여기에 테이블을 생성/삭제/수정할 수 있습니까? add new item을 사용하여 LINQ to SQL Classes을 추가하면 dbml 파일을 얻을 수 있습니까?

  2. 다음은? 데이터베이스에 테이블을 생성 하시겠습니까? SQL 스크립트 생성? cs 파일을 생성 하시겠습니까? 언제? 방법?

답변

24

DBML 파일은 데이터베이스 서버와 전혀 관련이 없습니다. 그것은 완전히 클라이언트 쪽입니다. 그것은 본질적으로 데이터베이스에있는 테이블에 대한 정보 집합이며 .NET 개체에 매핑하는 방법입니다.

물론 데이터베이스에서 테이블을 끌어 와서 Visual Studio에서 자동으로 일부 정보를 유추 할 수 있지만 파일을 변경해도 데이터베이스에는 영향을 미치지 않습니다. 데이터베이스가 없어도 처음부터 DBML 파일을 만들 수 있습니다.

내부적으로 DBML 파일은 Visual Studio에서 사용자 지정 도구로 제공되는 XML 파일로, 해당 데이터베이스의 LINQ 개체 모델을 나타내는 .cs 파일을 생성합니다.

+0

.cs 파일 생성을 위해 dbml 파일을 우회하는 방법이 있습니까? sqlmetal/server : dwasilew \ sqlexpress/database : Ande /code:Ande.cs이 명령에는 Ande.cs 파일이 생성 된 것 같습니다. 언급 된 .dbml이 없습니다. – 5YrsLaterDBA

+0

@ 5Yrs :'SQLMetal'은 (1) 데이터베이스에서'dbml'을 생성 할 수있는 도구입니다 (2) dbml에서 코드를 생성 할 수 있습니다 (3) 2 개의 프로세스와 소스 파일을 데이터베이스에서 직접 출력 할 수 있습니다. . Visual Studio는 기본적으로 GUI로 동일한 작업을 수행합니다. SQLMetal에 대한 다른 명령 줄 인수는 다음에서 볼 수 있습니다. http://msdn.microsoft.com/en-us/library/bb386987.aspx –

3

DBML 파일은 데이터베이스 스키마를 기반으로 클래스를 정의하는 매핑입니다. 예, 그것은 (기본) 연결 문자열을 정의하지만 데이터베이스를 "구성"하지는 않습니다.

Linq to Sql은 데이터베이스가 있고 DB 스키마 뒤에 클래스를 모델링하는 데이터베이스 우선 접근 방식을 사용합니다. & 테이블을 끌어다 놓으면 클래스 생성을 자동화하여 입력하지 않아도됩니다. 거기에서 속성 이름 등을 변경할 수 있으며 속성과 해당 데이터베이스 열 이름 간의 매핑은 그대로 유지됩니다.

2

예, DBML 파일은 SQL 클래스에 Linq를 추가 할 때 만들어집니다. 디자이너 (DBML 파일을 더블 클릭 할 때 표시)에서 테이블 (서버 탐색기의)을 끌어다 놓을 수 있습니다. 그런 다음 코드에서 이러한 테이블을 참조 할 수 있습니다. 거기에 몇 시작하기 자습서보다 더 있습니다 자세한 내용은

확인이 SO 질문 :

https://stackoverflow.com/questions/481244/can-anyone-recommend-a-good-tutorial-for-learning-linq2sql

+0

링크 된 SO 질문이 삭제되었거나 이동 된 것처럼 보입니다. – Alex

+0

음,이 게시물은 7 살입니다 :-). Linq to SQL은 오늘날의 표준에 의해 죽은 것으로 간주됩니다. 레거시 코드로 작업하지 않는 한, Entiy Framework와 같은 다른 것을 사용하는 것을 고려할 것입니다. – HitLikeAHammer

관련 문제