2009-01-22 11 views
3

테이블간에 연관이없는 레거시 데이터베이스를 사용하는 두 개의 프로젝트가 있습니다. 나는 DBML 파일에 연결을 만들 경우 한에서,이 같은 LINQ에 연결을 참조 할 수 있습니다 : (. 내가 DBML 파일에 State.state_abbrCity.state_abbr에서 링크를 추가 가정) LINQ to SQL에서 새 연결을 인식하지 못합니까?

From c In context.Cities Where c.city_name = "Portland" _ 
Select c.State.state_name 

에서 보이지 않는 수동으로 연결을 추가, 다른 데이터베이스를 사용하는 다른 프로젝트 나에게 해당 기능을 제공하고, 나는이 같은 LINQ 쿼리를 작성하는 강제 해요 :

From c In context.Cities Where c.city_name = "Portland" _ 
Join s In context.States On c.state_abbr = s.state_abbr _ 
Select s.state_name 

내가 누락 될 수있는 어떤 생각 두 번째 프로젝트에서 티?

참고 : 이것들은 완전히 고안된 예제입니다. 실제 소스 테이블은 서로 비슷하지 않으며 매우 암호화되어 있습니다.

+0

혹시 찾았어요 ... 아무도 아직이 제안하지 않았다 보인다 대답은? 나도 똑같은 문제를 겪고있다. –

+0

내 문제에 대한 해결책을 찾았고, 내가 게시 한 답변을 참조하십시오 : –

답변

3

내 문제는 내 테이블에 두 번째 프로젝트의 기본 키가 없다는 것 같습니다. 앞서 말했듯이 이것들은 레거시 테이블이므로 데이터베이스 자체 대신 데이터베이스 컨텍스트에서 연결 및 기본 키 작업을 수행해야했으며 두 번째로 기본 키를 지정하는 것을 잊었습니다. 당신이 그것을 발견하지 못했을 때 좌절감을 나타내지 만, 지금은 이해가됩니다.

+2

다른 대답은 꽤 명확하게 무엇입니까. –

8

Error List 페이지를 확인하십시오.

DBML1062 : type 속성 '[ParentTable]'협회 요소 의 'ParentTable_ChildTable'의 유형 요소 'ChildTable는' 이없는 기본 키 당신은 거기에 다음과 같은 일을 할 수도 있습니다 . 연결에 대해 코드가 생성되지 않습니다.

두 경우 모두 테이블에 기본 키가 설정되어 있고 dbml 파일을 다시 저장해야합니다. 그러면 사용자 정의 도구가 호출되어 designer.cs 파일을 업데이트하고 연결을위한 코드를 작성합니다.

1

때로는 모든 것이 올바르게 구성되었지만 여전히 작동하지 않는 경우 솔루션은 Visual Studio를 다시 시작하는 것처럼 간단 할 수 있습니다.

가끔 발생하는 이유는 모르겠지만,이 솔루션을 자신을 위해 약간의 검색을 수행하는 데 있기 때문에 나는이 대답을 추가해야한다고 생각,

+0

이런 나는 이것을 더 일찍 시도했으면 좋겠다. 나는이 작업을하려고하는 데 약 2 시간을 낭비했고 그것은 단지 VS가 바보였습니다. appData 임시 파일을 삭제하고 VS를 다시 시작하면 문제가 해결되었습니다. –

관련 문제