문제

간단한 데이터베이스에서 새로운 ado.net 엔티티 데이터 모델을 사용하고 있습니다. 기본 키 (PageID)가있는 테이블/엔티티와 부모/자식 "0..1에서 많은"관계에 대해 PageID에서 자체를 참조하는 부모의 외국 키가 있습니다. ASP.NET 페이지에서 ASP : DynamicControl이있는 FormView를 사용하여 컨트롤로 표현합니다. 그 부분은 하나의 중요한 세부 사항을 제외하고는 잘 작동합니다. 페이지가 렌더링되면 가능한 부모 목록에 스스로가 포함되며, 자체가 오류가 발생하지 않고 데이터베이스에 저장하는 항목을 설정합니다. 분명히 계층 적 대상은 그 자체의 부모가 없어서는 안됩니다. 그래서 어떻게이 동작을 제한합니까?

내가 볼 수있는 한, 내 옵션은 다음과 같습니다.

  • 어떻게 든 외국인을 바꾸십시오_DynamicData FieldTemplates에서 편집. 현재 엔터티의 참조를 얻는 방법을 알 수 없기 때문에 이것은 문제가됩니다. 일 순위 가능한에서 제거하는 열쇠 외국의 주요 선택. 또한, 이는 키가 충돌하는 경우의 비 계급 FKEY를 호스 할 수 있습니다.

  • 렌더링 된 드롭 다운 목록에서 ListItem을 제거하려면 페이지에서 Prerender Jiggery-Pokery를 수행하십시오. 문제의 페이지에 대해서만 수정하기 때문에 올바른 방법처럼 보이지 않습니다. 편집 : 이것은 내가 현재 그것을 해결하는 방법입니다.

  • 어떤 종류의 삽입/업데이트 트리거로 인해 부모가 일치하면 부모가 NULL을 강제로 강제합니다. 사용자의 관점에서 조용히 실패하기 때문에 좋지 않습니다.

더 나은 방법이있는 사람이 있습니까? 또한 더 자세한 내용을 제공 해야하는지 알려주십시오.

-켈리

도움이 되었습니까?

해결책

부모/자식 관계 이상의 것을 저장해야했기 때문에 계층 구조를 조립 테이블로 옮겼습니다. 그렇게함으로써 DynamicData 컨트롤을 버리고 Drag-N-Drop 서버 측 이벤트 (ComponentArt)와 함께보다 사용자 직관적 인 TreeView를 사용할 수 있음을 의미했습니다. 통제의 특성으로 인해 어떤 항목도 부모가 될 수 없으므로 문제가 무너졌습니다. 와우, 7 개월은 엔티티 프레임 워크에 대한 첫 경험에서 오랜 시간입니다 :)

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