문제

.NET 3.5와 함께 제공되는 새로운 Dynamic Data 사이트 생성 도구를 사용해 보았습니다.이 도구는 LINQ 데이터 소스를 사용하여 참조용 .dmbl 컨텍스트 파일을 사용하여 데이터베이스에서 데이터를 가져옵니다.데이터 그리드를 사용자 정의하는 데 집중하고 있지만 둘 이상의 테이블에서 데이터를 표시해야 합니다.LINQ Datasource 개체를 사용하여 이 작업을 수행하는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

테이블이 외래 키로 연결된 경우 두 테이블이 linq에 의해 자동으로 결합되므로 쉽게 참조할 수 있습니다(dbml을 보면 테이블을 연결하는 화살표가 있으면 쉽게 알 수 있습니다). 그렇지 않은 경우 하나를 추가할 수 있습니다.

그렇게 하려면 다음과 같이 하면 됩니다.

<%# Bind("unit1.unit_name") %>

테이블에서 'unit'에는 다른 테이블을 참조하는 외래 키가 있으며 해당 'unit_name'의 'unit' 속성을 가져옵니다.

그게 말이 되기를 바랍니다.

다른 팁

(EDIT가 질문을 오해하여 다음 답변을 수정했습니다)

LinqDataSource는 실제 요소에서 Join을 표현할 수 없는 문제를 극복할 수 있는 뷰를 가리킬 수 있습니다.에서 "어떻게:테이블 및 뷰에 매핑된 LINQ to SQL 클래스 만들기(O/R 디자이너):

O/R 디자이너는 1:1 매핑 관계만 지원하므로 단순한 개체 관계형 매퍼입니다.즉, 엔터티 클래스는 데이터베이스 테이블 또는 뷰와 1:1 매핑 관계만 가질 수 있습니다.엔터티 클래스를 여러 테이블에 매핑하는 등의 복잡한 매핑은 지원되지 않습니다.그러나 여러 관련 테이블을 조인하는 뷰에 엔터티 클래스를 매핑할 수 있습니다.

하나의 데이터그리드에 둘 이상의 개체/데이터 소스를 넣을 수 없습니다.부품 엔터티의 노출된 속성을 결합하는 단일 ConceptObject를 구축해야 합니다.DB -> L2S 엔터티 -> ConceptObject를 사용해 보세요.DB 모델이 ConceptObject 필드 대 필드와 일치한다면 매우 당황스러울 것입니다.

더 복잡한 Linq를 수행하고 그리드를 ObjectDataSource에 바인딩하려는 경우 ObjectDataSource를 사용하는 것이 가장 좋습니다.그러나 문제를 일으킬 수 있는 익명 유형에 주의해야 하지만 무엇이든 가능합니다...

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