2012-09-18 6 views
0

ASP.NET MVC 및 Entity Framework를 사용하여 프로젝트를 작성하고 있습니다 (약 5 년 동안 PHP를 사용한 이래로).Entity Framework 5를 사용하는 사용자 정의 필드

카테고리와 게시물이 있으며 각 카테고리에는 문자열이나 부울 (텍스트 상자 또는 체크 박스를 통해 가져올 수 있음)이 될 수있는 고유 한 필터가 있어야합니다. 엔티티를 디자인 할 때 혼란스러워지기 시작했습니다.

코드 우선 접근 방식을 사용하고 있지만 Entity Framework에서 사용자 지정 필드를 설정하는 방법을 알지 못합니다. 만약 내가 PHP와 순수한 SQL을 디자인했다면, 성능을 좋게 유지하기 위해서 즉석에서 추가 컬럼을 생성하고 (예 : "filter_1", "filter_2"), 다음을 포함하는 매핑 테이블을 생성한다고 생각합니다. 필드, 유형 등에 대한 설명이 포함되어 있습니다. 이러한 구현이 EF에서 가능한지는 알지 못했습니다. - 필터 및 필터 값 테이블을 만들 때 다 대다 관계를 사용하여 필터를 만들 수 있으며 게시물을 만들 때 필터 값을 해당 테이블에 추가 할 수 있습니다. 그것에 대해 주요 죄책감은 그가 성능이다 - 나는 40k + 행과 20 개 이상의 맞춤 필터를 가질 가능성이 높기 때문에 ... 검색 및 데이터 가져 오기가 너무 느려질 것입니다 ... - 필터링 된 값을 어떤 형태의 콘텐츠, 예를 들어 바이트 배열로 변환 한 다음에 만 그것을 제거 할 수 있습니다. 그러나 문제는 내가 그 안에서 검색 할 수 없다는 것입니다. - 전통적인 ADO.NET 방식을 사용하여 "filter_N"열을 사용하여 PHP에 대해 이야기했을 때 설명했으나 EF로 너무 많은 혼란을 야기 할 수 있습니다 ...

내 목표를 달성 할 수있는 다른 방법이 있습니다 (사용자 지정 필터를 만들려면)? EF를 사용하여 사용자 정의 필드를 만드는 방법은 무엇입니까?

도움 주셔서 감사합니다.

+0

엔터티 프레임 워크는 런타임에 데이터베이스를 변경해야하는 시나리오를위한 도구가 아닙니다. EF를 사용하려면 필터와 값을위한 별도의 테이블이 있어야하며 성능 문제를 해결하기 위해 인덱스를 올바르게 설정해야합니다. 40k 행은 인덱스를 올바르게 설정할 때 큰 문제가되지 않습니다. –

+0

감사! 나는 당신의 조언을 따르고 모델을 사용하여 그것을 만들 것이라고 생각합니다. 답변으로 댓글을 표시 할 수 있습니까? –

답변

0

Entity Framework에서이를 구현하기위한 좋은 방법을 알지 못합니다. Entity Framework를 사용하기를 원한다면 즉시 추가 열을 만들 필요가 없도록 데이터베이스 테이블을 디자인 할 수 있다고 생각합니다. 필터를 보관할 테이블을 별도로 가질 수 있으며 다시 필터를 범주와 연관시킬 수 있습니다.

관련 문제