문제

Raven DB와 C # API에 대한 도움이 필요합니다. LINQ 쿼리 (LINQ가 RAVEN 구현으로)를 사용하여 "주문으로 주문"을하고 싶습니다.그렇게하려면이 작업을 실현하기 위해 색인을 만들어야합니다.내 스키마는 현재 정규화되지만 사용자 정의 속성을 추가하기 위해 Dnormanize를 원합니다.

그래서, 나는 가지고 있습니다 :

엔티티 A :

  • 일부 속성
  • B 엔티티의 ID

    사실, 나는 단순히 B 속성으로 내 것으로 명령하고 싶다.그래서 B 속성을 포함하도록 내 A를 비범화하고 싶습니다.

    라살이 ravendb에서 가능하지만 A.를 변환 할 때 B 속성을로드해야하며 문서에 따라 불가능한 것처럼 보입니다.

    BS를로드하기 위해 각 A를 반복하는 소름 끼치는 프로그램을 만들고 싶지는 않지만 다른 해결책은 보이지 않습니다.

    모든 아이디어?

    시간에 감사드립니다 :). 줄리앙

도움이 되었습니까?

해결책

소름 끼치는 프로그램을 작성해서는 안되지만 유용한 마이그레이션 스크립트의 무리를 보유 할 강력한 이주 프로젝트입니다.벨로우즈와 같은 간단한 스크립트는 당신을 위해 일을 할 것입니다 :

public void LoadAndSaveWithDenormalizedProperty()
{
    using (var session = store.OpenSession())
    {
        int skip = 0;
        const int take = 24;
        while (true)
        {
            var items = session.Query<ItemA>()
                .Customize(customization => customization.Include(x => x.ItemBId))
                .Skip(skip)
                .Take(take)
                .ToList();
            skip += items.Count;

            foreach (item in items)
            {
                item.DenormalizedProperty = 
                       session.Load<ItemB>(item.ItemBId).PropertyToDenormalize;
            }

            session.SaveChanges();

            if (items.Count == 0)
                break;
        }
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top