2011-02-25 4 views
1

두 가지 수준으로 내 정렬을 저장하는 방법을 알아 내려고하고 있습니다. 내 문제는 다음과 같습니다.각 프로필에 대한 속성/카테고리 정렬 저장

프로필이있는 테이블이 있습니다. 각 프로필에는 연결된 속성 집합이 있습니다. 속성은 프로파일간에 공유됩니다 (다 대다). 각 속성은 범주에 속합니다.

불행하게도 나는 카테고리의 순서를 저장, 그룹 각 프로파일에 대한 범주 별 특성 및

내가하고 싶은 것은 ... 또 다른 9 reputaion 포인트 필요, 내 모델의 이미지를 게시 할 수 없습니다 및 속성.

예 :

플랫폼 : 윈도우 맥

역할 : 건축가 개발자 프로젝트 리더 그래서 여기 내가, 예를 들어,의 순서를 변경할 수 있도록하고 싶습니다

또는 "플랫폼"앞에 "역할"을 표시하십시오.

내가 별도의 테이블을 추가하고 단지 카테고리 ID의 배열을 저장하는 생각을했다 : s와의 AttributeId를 각 프로파일에 대해들 .. 그러나 더 나은 방법이 있는지 궁금 해요 ...

답변

1

좋아, 당신이 당신이 엔티티의 순서를 유지하기 위해 노력하고 의미 가정의 다시 시도 :)

을 할 수 있음을 수행하는 방법을 보여줍니다 예입니다 다 - 대 - 다 관계?

그렇다면 stadard EF many-to-many join으로는 이것이 불가능한 것처럼 보입니다. 대신 중간에 엔티티를 추가해야 시퀀스가 ​​저장됩니다. 이것은 우아하지 않지만 가능성있는 유일한 방법입니다.

EF에서 어떤 페이로드 주문한되지 않은 내용을 포함 할 수 없습니다 (조인 실체가없는 즉) 여러에 사실 많은 :

여기 로완 밀러 @ MS에서 몇 가지 정보입니다.

가입 엔티티를 추가하는 것이 가장 좋은 방법입니다. 이후의 목표를 달성하는 것이 가장 좋습니다.

출처 : http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/6fe9f4fc-9979-4885-ad15-8c5ddebb45b1

+0

좋아요, 그래서 엔티티 엔티티를 추가 할 것입니다. 감사합니다 !! – bek

0

각 객체 내에서 하위 객체를 정렬하고 싶습니까? 나는 이 AssociateWith 메서드를 사용하는 방법을 논의 곳

http://weblogs.asp.net/zeeshanhirani/archive/2008/07/28/sorting-child-collections-in-entity-framework.aspx

내가 이전 블로그 게시물을했다 :

그렇다면은 (는 불쾌한 보이지만) 여기에 도움이 될 수 약간의 정보있다 DataLoadOptions에서 자식 컬렉션을 전에 SQL 서버에서 정렬하기 전에 메모리에로드합니다. 이 옵션은 linq에서만 SQL에 사용할 수 있습니다. 엔티티 프레임 워크에서 자식 정렬을 수행하려면 컬렉션 CreateSourceQuery 메서드를 사용해야합니다. CreateSourceQuery는 개체 쿼리를 반환하며이 쿼리는 SQL 으로 변환되어 데이터베이스로 전송됩니다. 당신이 보다, 자녀 모음 가 다른 순서로 정렬 또는 필터를 적용 할 때 다른 같은로드 할 할 한다면 당신은 자식 하위 컬렉션을로드 을 담당하여 ObjectQuery 인스턴스에 대한 액세스를 얻을 수 있고 는 쿼리를 수정 ObjectQuery가 실행되기 전에 주문 을 추가하십시오. CreateSourceQuery 쿼리 메서드는 EntityCollection에서 , EntityReference에서 을 사용할 수 있습니다.다음은

var context = new NorthwindEntities(); 
var cus1 = context.Customers.Single(c => c.CustomerID == "ALFKI"); 
foreach (var order in cus1.Orders.CreateSourceQuery().OrderBy(o => o.ShipCity) 
{ 
     Console.WriteLine(order.ShipCity); 
} 
+0

안녕, 답변 주셔서 감사합니다. 불행히도 저를 위해 그것을하지 않을 것이다. 나는 나의 질문에 추가하고 더 정밀 할 것이다. – bek

+0

표에서 마일 떨어져 있었기 때문에 새로운 대답을 편집하기보다는 추가했다. 잘만되면 나는 올바르게 이해했다! –

관련 문제