2012-07-18 3 views
1

우리는 RavenDB를 사용하는 기존 애플리케이션을 보유하고 있으며 Raven에 데이터를 읽고 쓸 수있는 사용자 정의 Orchard Admin 모듈을 생성하여 데이터를 관리 할 수 ​​있기를 원합니다. 구현은 재사용 가능한 "모듈"을 만들 수 있도록 ContentPart를 사용하는 것이 이상적입니다.ContentHandler의 사용자 정의 데이터 소스에서 ContentPanette 채우기

ContentHandler에 데이터를로드하여 웹 서비스에서 데이터에 액세스하는 방법에 대해서는 여러 가지 참조가 있지만 구현 방법을 찾지 못했습니다. 컨트롤러/뷰를 사용하여 데이터를 읽거나 쓸 수 있었지만 더 제한적으로 보입니다.

Use RavenDB as the database for an Orchard CMS module

How to change Orchard record repository

는 또한, 우리가 관리하는 데 필요한 속성 중 하나는 이미지입니다. 관리자 인터페이스에서 이미지를 선택하기 위해 미디어 선택기 필드를 사용하고 싶습니다. 오차드 (Orchard)가 실제 이미지를 저장하는 것은 브라우저를 통해 이미지를 볼 수만 있다면 괜찮습니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다.

+0

내가 틀렸다면 정정하십시오. 그러나 ContentHandler에 ContentPart를 채우려면 (@ piotr-szmyd의 게시물을 참조하십시오 (http://stackoverflow.com/questions/4727843/how-to-change) -chard-record-repository/5086069 # 5086069)) 당신은 오차드에 어떤 종류의 ID를 저장해야합니다. 웹 서비스에서 데이터를 조회하는 데 사용할 것은 무엇입니까? 이것은 우리가 오차드를 통해 조회 ID를 저장하고 싶지 않기 때문에 내가 피하려고했던 것입니다. 그래서 나를 둘러 보게했습니다. 나는 어떻게 든 들어갈 수 있다고 생각했지만 레이븐 (Raven)을 위해 IRepository를 구현하려고합니다. – codingintherain

답변

1

과수원 콘텐츠 항목을 사용하는 경우 Id이 이미 있습니다. 새 항목을 저장할 필요가 없습니다. 일부 식별자를 사용하여 오차드 및 백엔드 저장소를 바인딩해야합니다. 그렇지 않으면 전체 오차 코드 데이터 계층을 다시 구현해야합니다 (잔인합니다). (당신이 오차드 데이터베이스에 저장하지 않기 때문에,하지 ContentPart<T>)

  • ContentPart에서 파생 부품을 만들 :

    당신은 할 필요가있다. 그런 다음

  • 부분에 대한 처리기를 추가하고 적절한 평생 이벤트 (예 : OnLoading)에 연결하고 지정된 콘텐츠 항목 ID 및 부품 유형 조합에 대해 백엔드에서 데이터를로드하십시오.
  • (평소와 같이) 사용자의 드라이버를 추가하고 데이터 저장 로직을 Editor 메소드에 넣으십시오.

이렇게하면 외부 소스에서 완전히로드 된 오차 데이터베이스에 저장된 데이터가없는 부분이 생깁니다.

0

Piotr와 같이 파트를 만들어야하는 오차 (Orchard) 파트 (주석, 등급 등)로 외부 데이터를 풍부하게 만들려는 경우. 즉, 모든 원격 객체에 대한 컨텐츠 항목을 작성하는 것은 의미가 있습니다. 이는 고유 한 도전 과제 (고유 한 데이터 소스를 동기화하는 것을 의미합니다. 결코 재미있는 일이 아닙니다)를 가져올 것입니다.

그렇게하지 않으려면 해당 데이터를 표시 할 컨트롤러 동작 (및 위젯 일 수도 있음)을 만들어야합니다. 그렇게해도, 주제와 같은 많은 오차드 일들로부터 여전히 이익을 얻을 수 있습니다.

관련 문제