Couchbase의 새로운 EF 코어 공급자 는 기존에 관계형 데이터베이스에 묶여 있던 강력한 .NET 통합의 문을 열어줍니다. 이 게시물에서는 Identity, GraphQL 및 OData가 모두 Couchbase에서 어떻게 작동하는지 설명합니다.

이 게시물에서는 다음과 같이 안내해 드리겠습니다. 세 가지 고급 EF Core 통합 Couchbase로 성공적으로 테스트했습니다:

    1. ASP.NET 핵심 아이덴티티
    2. GraphQL(핫 초콜릿을 통한)
    3. OData

참고: 이러한 통합 기능은 제한된 테스트를 기반으로 하며 아직 공식적으로 지원되지 않습니다. 마일리지는 다를 수 있지만 지금까지는 많은 가능성을 보여주고 있습니다.

ASP.NET 핵심 아이덴티티

Microsoft.AspNetCore.Identity.EntityFrameworkCore 는 ASP.NET 앱을 위한 플러그 앤 플레이 인증 및 사용자 관리 시스템을 제공합니다.

Couchbase의 EF Core 제공업체가 잘 작동합니다. 한 가지 주의해야 할 점은 적절한 컬렉션이 먼저 존재합니다. (예: AspNetUsers, AspNetRoles 등).

참고: 다음 컬렉션을 미리 만들어야 합니다: AspNetUsers, AspNetRoles, AspNetUserRoles, AspNetUserClaims, AspNetUserLogins, AspNetUserTokens, AspNetRoleClaims.

EF 설정 예시

MVC 인증 예제

다음은 등록, 로그인, 로그아웃 및 사용자 지정 역할이 있는 ASP.NET Core MVC 컨트롤러입니다:

데이터는 표준 ID 구조를 따르며, Couchbase 문서에 저장됩니다. 예를 들어 AspNetUser 컬렉션:

A document in AspNetUser collection


핫 초콜릿을 사용한 그래프QL

핫 초콜릿 는 널리 사용되는 .NET용 GraphQL 서버입니다. 이 서버는 공급자의 LINQ 기능(Couchbase가 제공하는 기능)을 활용하여 EF Core와 통합할 수 있습니다. 즉, GraphQL 쿼리가 LINQ로 변환된 다음 Couchbase SQL++로 변환됩니다.

설정

사용 예

  • 다음으로 이동 /graphql 을 클릭합니다(웹 인터페이스가 나타납니다).

  • 다음과 같은 쿼리를 시도해 보세요:

다음과 같은 결과가 반환됩니다:

    • GraphQL 쿼리는 GSI 인덱스와 일치해야 합니다(내부적으로는 SQL++ 쿼리일 뿐입니다).
    • 다음을 사용할 수 있습니다. 표지 인덱스 및 기타 SQL++ 인덱스를 사용하여 성능을 개선합니다.

OData

Microsoft.AspNetCore.OData 는 EF Core 데이터를 OData 엔드포인트로 노출하므로 Excel, Power BI, Tableau와 같은 도구를 Couchbase에 쉽게 연결할 수 있습니다.

프로그램.cs 샘플

컨트롤러

OData 쿼리 예제

    • https://localhost:7037/odata/Widgets?$filter=price gt 1&$orderby=name
    • https://localhost:7037/odata/Widgets?$select=name,price&$top=10

참고: EF Core LINQ 쿼리를 SQL++로 변환할 수 있는지, 필터링/소팅된 필드가 Couchbase에서 인덱싱되는지 확인하세요.

마무리

이러한 모든 통합은 EF Core에 의해 지원되며, 이제 Couchbase 지원을 통해 코드에서 이를 최대한 활용할 수 있습니다. 안전한 웹 애플리케이션을 구축하든, GraphQL API를 구축하든, BI 도구와 통합하든, EF Core와 Couchbase의 조합을 통해 모든 것이 가능합니다.

더 자세히 알고 싶으신가요? 다음에 어떤 통합 기능을 살펴보고 싶은지 알려주세요!

작성자

게시자 매튜 그로브스

Matthew D. Groves는 코딩을 좋아하는 사람입니다. C#, jQuery, PHP 등 무엇이든 풀 리퀘스트를 제출할 정도로 코딩을 좋아합니다. 90년대에 부모님의 피자 가게를 위해 QuickBASIC POS 앱을 만든 이후로 전문적으로 코딩을 해왔습니다. 현재 Couchbase의 선임 제품 마케팅 관리자로 일하고 있습니다. 여가 시간에는 가족과 함께 축구 경기를 관람하고 개발자 커뮤니티에 참여하며 시간을 보냅니다. 그는 .NET의 AOP, .NET의 프로 마이크로서비스, Pluralsight 저자, Microsoft MVP의 저자이기도 합니다.

댓글 남기기