우리는 관리자가 다른 테이블에 대한 외래 키 연결을 포함하여 시스템 내에서 새로운 콘텐츠 형식을 시스템에 구축 할 수있는 시스템을 보유하고 있습니다. 관리자는 데이터베이스를 재구 축할 수 있으며, 테이블과 필요한 모든 관계를 생성 한 다음 EDMX를 재구성하고 모든 것을 다시 컴파일합니다. 챔피언처럼 작동합니다 (필자는이 글을 쓰지 않았거나 이에 대한 답을 알고있을 것입니다).Entity Framework - 역 외계 키 검사
사용자가 다른 테이블의 항목으로 링크 된 레코드를 삭제하려고 할 때의 단점이 있습니다. 참조 무결성으로 인해 오류가 발생합니다. 물론 이것을 포착 할 수는 있지만 현재 제공 할 수있는 것은 '무언가의 유형과 연결되어 있기 때문에이 항목을 삭제할 수 없습니다'유형의 일반 오류입니다. 나는 오히려 항목이 지울 수 있는지 확인하고 그렇지 않은 경우 단추를 사용하지 않도록 확인합니다.
삭제할 항목이 연결된 테이블/행을 런타임에 확인할 수있는 방법이 있습니까? 일반적으로 관련 테이블을 쿼리하는 것이지만이 응용 프로그램의 특성으로 인해 다른 테이블이 디자인 타임에 어떤 것인지 알 수 없습니다. 짧은 그래서
, 내가있는 경우 :
푸 : FooID, FooName 바 : BarID, FooID, BarName 탕 : PowID, FooID, PowName
는 런타임에 알 수 있는가하는 Foo의 행은 Bar 또는 Pow에서 FK 연결로 인해 삭제할 수 없으며, 그렇다면 어떤 테이블에서 오류를 일으키는 지 알 수 있습니까?
미리 감사드립니다. 첫 번째 글은 여기에 게시하시기 바랍니다.
특히 내 아주 간결한 설명과 그걸 ('끔찍한'부분) 말하는 구성 테이블에서 무엇입니까? – Chris
예, 여기 저기에있는 라디 슬라브의 대답을 보았습니다. 그들은 보통 매우 질적이었습니다.하지만이 "끔찍한 건축"에 대해 너무 놀랐습니다. @ 라디 슬라브 : 당신이 의미하는 바가 분명하지 않기 때문에 조금 더 확장 해 주시겠습니까? –
@ zespri, @Chris : EF를 사용하여 모델을 정의한 경우 데이터베이스를 정의하고 모델을 사용하는 코드를 작성한 다음 애플리케이션을 테스트하고 배포합니다. 모델 변경은 응용 프로그램이 여전히 작동하고 변경으로 인해 유스 케이스가 손상되지 않도록해야하는 개발자가 결정합니다. 분명히 Admin이 모델을 수정하고, 클래스를 재생성하고, 어셈블리를 재 빌드하고, 응용 프로그램을 재배포하는 몇 가지 자동 멋진 기능을 트리거 할 수있는 질문에 설명 된 접근 방식은이 사실을 매우 엄격하게 위반합니다. 나는 왜 당신이 그렇게하는지 이해하지 못한다. 어떻게 알려지지 않은 기능을 사용할 수 있는가? –