Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 설치된 서버 Mazor버전과 맞춰서 패키지 설치


Database생성

  • 몽고DB와 유사하게 스키마리스 DB이기때문에 DDL코드가 필요로 하지 않습니다.

...

  • 엔티티를 관리해야할 부담을 덜수 있습니다.
  • 처음이용할때 DBManageMent Tool을 한참 찾았는데~ 웹에 통합되어 대부분의 관리기능을 웹을 통해 가능합니다. - 로컬설치버전 기준 

Repository 코드

Code Block
themeEmacs
public class Member
{
    public string Id { get; set; } // RavenDB는 기본적으로 Id를 문서 키로 사용
    public string Name { get; set; }
    public string Email { get; set; }
    public int Age { get; set; }
}

public class MemberRepository
{
    private readonly IDocumentStore _store;

    public MemberRepository(IDocumentStore store)
    {
        _store = store ?? throw new ArgumentNullException(nameof(store));
    }

    public void AddMember(Member member)
    {
        using (var session = _store.OpenSession())
        {
            session.Store(member);
            session.SaveChanges();
        }
    }

    public Member GetMemberById(string id)
    {
        using (var session = _store.OpenSession())
        {
            return session.Load<Member>(id);
        }
    }

    public void UpdateMember(Member member)
    {
        using (var session = _store.OpenSession())
        {
            var existingMember = session.Load<Member>(member.Id);
            if (existingMember != null)
            {
                existingMember.Name = member.Name;
                existingMember.Email = member.Email;
                existingMember.Age = member.Age;
                session.SaveChanges();
            }
        }
    }

    public void DeleteMember(string id)
    {
        using (var session = _store.OpenSession())
        {
            var member = session.Load<Member>(id);
            if (member != null)
            {
                session.Delete(member);
                session.SaveChanges();
            }
        }
    }
}

...