현재 NHibernate를 배우고 있으며 웹 컨트롤 (예 : GridView)에 데이터 바인딩하고 싶습니다. 나의 현재의 예에서GridView가 관계를로드하기 위해 NHibernate 프록시를 발생시키지 않습니다
나는 비즈니스 오브젝트 (프로젝트 및 ProjectStatus)에 두 개의 테이블을 매핑 유창함 자 NHibernate를 사용하고 있습니다. 또한 "ProjectStatus"(다 대일) 관계가 있습니다. 프로젝트 클래스의
구조 :
Project.ID
Project.Name
Project.ProjectStatus.Name
Project.ProjectStatus.Description
의 GridView에 (= "프록시"게으른에) 내가 프로젝트 개체 목록을 결합이의의 GridView이 참조 된 테이블의 부하를 유발하지 않습니다. 결과적으로 필드 이름 및 설명 ProjectStatus의은 GridView 컨트롤에서 제외되었습니다.
데이터 바인딩 된 GridView와 함께 실제 지연로드하는 방법이 있습니까?
미리 감사드립니다.
OnRowDataBound 이벤트를 중단시키지 않으려면 다음과 같이 자식 객체 속성에 대한 래퍼 속성을 만들 수 있습니다. public string StatusName {get {return ProjectStatus.Name; }} –
감사합니다. Jamie Ide, 네가 옳았다. 아이들을 수동으로 액세스하고 RowDataBound 핸들러의 행에 추가하여 내 문제를 해결했습니다. ADO.NET Entity 개체/프록시가 같은 방식으로 작동하는지 알고 있습니까? 아니면 데이터 바인딩이 더 쉬워 집니까? – motto
@Motto - 불행히도 데이터 바인딩의 제한 사항이므로 개체가 어디서 왔는지는 중요하지 않습니다. 난 당신 RowDataBound없이 귀하의 페이지에 가져 오기 문을 넣고 eval을 사용하여 주위를 해결할 수 있다고 생각합니다. –