2009-12-16 6 views
2

SQLMetal로 dbml을 생성 할 때 OneToOne 관계 (카디널리티)를 설정할 가능성이 있습니까? 기본적으로 OneToMany 관계로 생성 된 dbml 스키마입니다.SQLMetal을 사용하는 LINQ to SQL의 OneToOne 관계 (카디널리티)

+0

은 두 테이블에서 기본 키를 가리키는 관계입니까? 또는 보조 테이블에 다른 기본 키가 있고 관계가 외래 키 열로 이동합니까? –

+0

두 테이블의 기본 키를 가리키는 관계. – Sasha

답변

2

DBML 디자이너를 사용하고 있습니까? 그렇다면 관계를 나타내는 화살표를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택할 수 있어야합니다. 그런 다음 Cardinality 속성을 속성 대화 상자에서 OneToOne로 설정할 수 있습니다.

+0

예, DBML 디자이너를 사용할 수 있지만이 프로세스를 자동화하고 싶습니다! – Sasha

+0

* 모든 * 관계가 OneToOne이되게하려면'Description' 요소에 대해 DBML 파일 (단지 XML 임)을 구문 분석하고 각각에'Cardinality = "One"속성을 추가하는 설명이 담긴 스크립트를 작성할 수 있습니다 요소. –

+0

제 경우에는 OneToOne 만 두 관계가 필요합니다. 그러나 어쨌든 나는 어떤 종류의 대본을 쓸 것 같습니다. – Sasha

0

나는 SqlMetal을 사용하여 Dbml 파일을 만든 다음 xslt를 사용하여이 xslt 기반을 사용하여 내용을 수정합니다 (예 : http://blogs.msdn.com/ploeh/archive/2008/04/10/AutomaticallyGeneratingLINQToSQLModelsFromTSQL.aspx). 카디널리티를 변경하거나 Enum의 유형을 변경합니다.

+0

감사합니다. 나는 당신의 접근 방식을 시도 할 것입니다. – Sasha

+0

또한, linq2sql이 양쪽에서 primarykey 참조를 지원하는 것처럼 보입니다. 따라서 하나의 참조 (단지 일대 다 관계)를 만들고 그 연관성을 카디널리티 1로 설정하십시오. –