다른 데이터 모델을 다형성으로 만들려면 훨씬 더 쉬울 새 프로젝트 작업을 시작하고 있습니다. Entity Framework 4.0 (릴리스되었을 때)을 사용하고 있지만 실제로 작동 할 수 있는지 여부를 결정할 수 없었습니다..NET Polymorphic Data Framework가 있습니까
다음은 기본적인 시나리오입니다. 필자는 주석 시스템을 구현했으며 여러 다른 유형의 모델에 연결할 수 있기를 원합니다. 어쩌면 사람의 프로필에 대한 의견과 웹 페이지에 대한 의견이 필요합니다. 과거에이 작업을 수행하는 방법은 웹 페이지와 주석 테이블 간의 관계와 별도로 사람 테이블과 주석 테이블 간의 관계를 만드는 것입니다. 그러나 이것은 데이터베이스에서 지나치게 복잡한 테이블 구조로 이어질 것이라고 생각합니다.
내가 의견을 원하는 개체에 인터페이스를 추가 한 다음 단일 관계로 데이터베이스의 테이블 구조를 단순화 할 수 있다면 가장 좋을 것입니다.
내가 겪고있는 문제는이 유형의 작업을 수행하는 방법에 대한 정보를 찾기 위해 올바른 용어를 알지 못하는 것입니다. 누구든지 제공 할 수있는 도움을 주시면 대단히 감사하겠습니다.
네, 이것은 제가 생각하고있는 것과 정확히 같은 유형입니다. 나는 타입 캐스팅을 투명하게 처리 할 수있는 방법이 있기를 바랬지 만, 총알을 물고 그것을해야만하는 것처럼 보입니다. 이 경우 target_object_id와 comment_type을 확인해야합니다. target_type은 대상 객체의 System.Type 일뿐입니다. 나는 그걸로 많은 일을 할 필요가 없으므로 배울 것입니다. – Josh
글쎄, 당신의 목표는 내가 데이터베이스에서 원래의 질문에서 수집 한 테이블의 수를 줄이는 것이라고 가정합니다. 대신 각 코멘트 유형에 대해 "매퍼 테이블"을 만들지 만 모든 댓글을 코멘트 테이블에 보관할 수도 있습니다. post_id 열과 comment_id 열이있는 "post_comments"테이블이있는 경우보기 또는 모델에 특정 게시물 ID에 대한 설명이 필요할 때 쿼리 할 수 있습니다. 유형 캐스팅은 필요하지 않습니다. – Jay
네, 그렇습니다. 테이블의 수와 쓰여지는 코드의 양을 줄이는 것입니다. 완벽한 세계에서 Ruby의 믹스 인처럼 작동하지만 C#에서는 불가능합니다. 그것은 큰 문제가 아니며, 나는 단지 내가 뭔가를 놓치기를 바랐다. – Josh