2010-04-29 1 views
2

Linq to Sql을 사용하여 두꺼운 클라이언트 응용 프로그램에 사용할 기존 데이터베이스 구조를 매핑했습니다.LINQ 연결을 EntitySet으로 만드는 이유 <table>?

일부 저장 프로 시저를 대체하기 위해 Linq 메소드를 작성하는 동안 가끔 tblOne.tblTwo.MyDesiredField을 수행 할 수 있다고 나타났습니다. 그게 작동하려면 dbml에 association이 필요하다는 것을 알았습니다. 음, 내 눈에 띄는 것들이 빠져있어서 무리를 더했습니다. 내가 tblThree 자체가 아닌 테이블의 EntitySets<tblThree>을 고려 가끔 테이블 관련된 의 일부로서 위를 할 수없는 것으로 나타났습니다 때

했다?

나에게는 내가 얻는 것에 관해서 운이나 이유가없는 것으로 보인다. dbml에서 잘못된 것이 있습니까? Properties에서 변경해야 할 사항이 있습니까?

이 문제가 발생합니까? 나는이 EntitySet<tblThree> 내가 추가 from ..

from person in context.tblPersons 
from address in person.tblAddress where address.AddressType == "Home" 
select new {person.Name, address.Home}; 

답변

2

EntitySet은 결과 집합 추가해야 사용났습니다. tableA에 tableB와 1 대 다수의 관계가있는 경우 tableA.tableB는 tableA의 결과를 참조하는 tableB의 결과 콜렉션을 참조합니다.

테이블은 단지 테이블입니다. 디자이너를 사용하여 드래그 앤 드롭하면 물건을 더 읽기 쉽게 만드는 entitySets를 복수형으로 표시합니다.

편집 :이 경우 TableA의에서

from b in TableA select b.TableB 

가 표입니다 다음과 같이 나는 당신의 설치의 소리에서 상상, 당신은 가능성이 entitySet를 볼 수 있습니다, 그리고 b.TableB는 EntitySet입니다

+0

그래서 1 대 다수 관계의 많은면, 맞습니까? 또한, 그때 아무것도 걱정할 필요가 없습니다. 그렇다면'EntitySets <> '로 작업하는 올바른 방법보다 위의 설명에서 추가로'from'을 사용하고 있습니까? 답변 해주셔서 감사합니다. –

+0

네, 그 성명서에서 당신이하려고하는 것이 "모든 사람의 명단과 집 주소를 가져 오십시오 (각 사람이 여러 주소를 가질 수 있기 때문에) –