Linq2Couchbase 1.4.0-beta

This is a prerelease version of Linq2Couchbase.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Linq2Couchbase --version 1.4.0-beta                
NuGet\Install-Package Linq2Couchbase -Version 1.4.0-beta                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Linq2Couchbase" Version="1.4.0-beta" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Linq2Couchbase --version 1.4.0-beta                
#r "nuget: Linq2Couchbase, 1.4.0-beta"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Linq2Couchbase as a Cake Addin
#addin nuget:?package=Linq2Couchbase&version=1.4.0-beta&prerelease

// Install Linq2Couchbase as a Cake Tool
#tool nuget:?package=Linq2Couchbase&version=1.4.0-beta&prerelease                

Linq2Couchbase

Join the chat at https://gitter.im/couchbaselabs/Linq2Couchbase Build status

The official Language Integrated Query (LINQ) provider for querying Couchbase Server 4.0 with N1QL using the Couchbase .NET SDK. The goal of Linq2Couchbase is to create a lightweight ORM/ODM for querying Couchbase Buckets using LINQ as the lingua-franca between your application and Couchbase Server 4.0 using N1QL, a SQL-like query language for JSON documents. It also provides a write API for performing CRUD operations on JSON documents.

Getting started

The Linq2Couchbase project has the following dependencies:

  • Couchbase Server 4.0 or greater with the query service enabled on at least one node
  • Couchbase .NET SDK 2.3.10 or greater
  • Common.Logging 3.3.1 or greater
  • Common.Logging.Core 3.3.1 or greater
  • JSON.NET 9.0.1 or greater
  • re-linq 2.1.1

If you are using NuGet, then the dependencies (other than Couchbase server) will be installed for you via the package manager.

Installing Couchbase Server

For a single instance of Couchbase server running on localhost, you can download one here (make sure it's 4.0). If you would like to create a cluster, the easiest way is by using the Vagrant scripts for provisioning clusters can be found here. Additionally, Docker scripts can be found here. Following the directions on each respective link for installation information.

Installing the package using NuGet

Once you have a Couchbase Server 4.0 instance or cluster setup, open Visual Studio 13 or greater or MonoDevelop and create an MVC Web Application. Open the NuGet Package Manager and search for "Couchbase Linq" or type the following into the Package Manager console:

Install-Package Linq2Couchbase

NuGet will install the package and all dependencies. Once you have the resolved the dependencies, you will initialize a ClusterHelper object which will manage the bucket resources needed by the Linq provider.

Quick Start

Query the 'travel-sample' bucket and return 10 airlines in any order:

ClusterHelper.Initialize(new ClientConfiguration
{
     Servers = new List<Uri> {new Uri("http://localhost:8091/")}
});

var context = new BucketContext(ClusterHelper.GetBucket("travel-sample"));
var query = (from a in context.Query<AirLine>()
		     where a.Country == "United Kingdom"
		     select a).
		     Take(10);

query.ToList().ForEach(Console.WriteLine);
ClusterHelper.Close();

Full code list available here.

Developer Guide

Building From Source

Linq2Couchbase uses the NuGet package manager for handling dependencies. To build from the source, simply clone the GitHub repository and build in Visual Studio. The NuGet package manager should download all required dependencies.

Project management

The jira project is here - you can file bugs, propose features or get an idea for the roadmap there. List of supported and proposed N1QL features can be found here.

Contributors

Linq2Couchbase is an open source project and community contributions are welcome whether they be pull-requests, feedback or filing bug tickets or feature requests. We appreciate any contribution no matter how bug or small! If you do decide to contribute, please browse the Jira project and ensure that that feature or issue hasn't already been documented. If you want to work on a feature, bug or whatever please create or select a ticket and set the status to "in-progress".

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.5 is compatible.  netstandard1.6 was computed.  netstandard2.0 was computed.  netstandard2.1 was computed. 
.NET Framework net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on Linq2Couchbase:

Package Downloads
Neon.Couchbase

Couchbase client extensions

Neon.Xunit.Couchbase

Xunit test fixture for Couchbase

Hangfire.Couchbase

This package adds support to Couchbase for Hangfire

UrumiTech.Core.Couchbase

Couchbase Integration

Stove.Couchbase

Couchbase integration for Stove.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Linq2Couchbase:

Repository Stars
stoveproject/Stove
Domain Driven Design oriented application framework, meets CRUD needs
Version Downloads Last updated
2.1.0 1,136 11/12/2024
2.0.1 4,845 9/11/2024
2.0.1-beta.2 1,172 6/22/2023
2.0.0 462,341 12/14/2021
2.0.0-beta.1 9,277 11/19/2020
1.4.2 949,286 12/17/2019
1.4.1 172,071 7/9/2019
1.4.0 218,123 8/28/2018
1.4.0-beta 2,165 5/24/2018
1.3.4 479,581 2/28/2018
1.3.3 57,174 9/25/2017
1.3.2 11,896 6/2/2017
1.2.1 9,760 10/17/2016
1.2.0 18,554 7/8/2016
1.1.0.2 5,650 4/7/2016
1.0.2 5,944 10/27/2015