Aerospike.Database.LINQPadDriver 7.0.53.17

dotnet add package Aerospike.Database.LINQPadDriver --version 7.0.53.17
                    
NuGet\Install-Package Aerospike.Database.LINQPadDriver -Version 7.0.53.17
                    
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="Aerospike.Database.LINQPadDriver" Version="7.0.53.17" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aerospike.Database.LINQPadDriver" Version="7.0.53.17" />
                    
Directory.Packages.props
<PackageReference Include="Aerospike.Database.LINQPadDriver" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aerospike.Database.LINQPadDriver --version 7.0.53.17
                    
#r "nuget: Aerospike.Database.LINQPadDriver, 7.0.53.17"
                    
#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.
#:package Aerospike.Database.LINQPadDriver@7.0.53.17
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aerospike.Database.LINQPadDriver&version=7.0.53.17
                    
Install as a Cake Addin
#tool nuget:?package=Aerospike.Database.LINQPadDriver&version=7.0.53.17
                    
Install as a Cake Tool

Aerospike LINQPad Driver

Use LINQPad 9 to explore, query, and update Aerospike from C# on Windows or macOS.

The driver creates a dynamic LINQPad data context from an Aerospike connection. Namespaces, sets, bins, secondary indexes, UDFs, and cluster metadata appear in LINQPad's connection explorer, where they can be inspected, dragged into a query, and used with IntelliSense.

The current project targets .NET 8 and packages the driver for LINQPad 9+.

For a visual feature tour, see the Aerospike LINQPad Driver feature overview.

Highlights

  • Query sets and secondary indexes with LINQ.
  • Read, write, delete, batch, operate, import, export, and truncate through driver helpers.
  • Use the native Aerospike C# client whenever lower-level control is needed.
  • Work with sparse and mixed-type bins through AValue and APrimaryKey.
  • Map records to and from C# objects, JSON, documents, maps, and lists.
  • Inspect cluster, namespace, set, bin, index, and UDF metadata from the connection tree.
  • Create and manage Aerospike multi-record transactions.
  • Generate LINQPad-driver or native-client code from existing records.
  • Build connection-aware prompts for LINQPad AI.

Aerospike namespaces, sets, and bins in the LINQPad connection explorer

Quick start

1. Install the driver

In LINQPad:

  1. Select Add connection.
  2. Select View more drivers.
  3. Choose Show all drivers and search for Aerospike.
  4. Install Aerospike Database LINQPad Driver.

For a local build, install the generated driver package instead. See Building and packaging.

2. Create a connection

Create an Aerospike connection and provide at least one seed host and the service port. The normal local-development defaults are:

Seed host: localhost
Port:      3000

Use Test before saving the connection. Authentication, TLS, public/alternate addresses, timeouts, record sampling, Auto Values, and production safeguards are described in the connection guide.

3. Run the sample setup

Open linqpad-samples/Demo/ReadMeFirst.linq and follow its setup notes. The sample scripts expect an Aerospike namespace named test unless you adapt the connection and namespace names.

See the sample catalog for the recommended order.

4. Run a bounded query

Assuming the sample Customer set is available:

var customers =
    from customer in test.Customer.AsEnumerable()
    where customer.State == "CA"
    orderby customer.LastName, customer.FirstName
    select new
    {
        customer.PK,
        customer.FirstName,
        customer.LastName,
        customer.Email
    };

customers.Take(100).Dump();

AsEnumerable() switches the generated set to ordinary LINQ-to-Objects operations. This is convenient for interactive exploration, but it means records are materialized before the LINQ predicate is applied. For server-side filtering, use an Aerospike expression:

var filterExpression = Aerospike.Client.Exp.EQ(
    Aerospike.Client.Exp.StringBin("State"),
    Aerospike.Client.Exp.Val("CA"));

test.Customer
    .Query(filterExpression)
    .Take(100)
    .Dump();

Read Querying and records for the distinction between driver-side LINQ, server-side expressions, primary-key reads, and secondary-index queries.

Documentation

Topic Start here
Visual product and feature overview Feature overview
Installation and first connection Getting started
Connection, TLS, timeouts, sampling, and display Connection configuration
Sets, records, LINQ, expressions, keys, and indexes Querying and records
AValue, APrimaryKey, conversions, maps, lists, and CDTs Auto Values
POCO mapping, JSON, and document operations Data mapping and documents
Writes, batch operations, import/export, UDFs, and MRT Data operations
Code generation, native API access, and advanced capabilities Advanced features
AI-assisted query and code generation AI features
Included .linq scripts and demo data Sample catalog
Full documentation map Documentation index
Generated API reference Hosted API documentation

Important concepts

Generated sets and record properties

The driver samples records to discover common bins and generate C# properties. Aerospike remains schemaless: a record can omit a bin, include an extra bin, or store a different type under the same bin name. Generated properties improve IntelliSense but do not turn a set into a fixed relational schema.

Auto Values

With Auto Values enabled, generated bin properties use AValue. This lets a query compare, inspect, convert, and traverse values without repeatedly writing casts and missing-bin checks.

from customer in test.Customer.AsEnumerable()
where !customer.Company.IsEmpty
   && customer.FirstName.TryApply<string, bool>(name => name.StartsWith("J"))
select customer

See the Auto Values guide before writing complex queries against sparse or mixed-type data.

Client-side versus server-side work

A LINQ predicate after AsEnumerable() runs in the LINQPad process. An Aerospike expression passed to Query(...), a policy, or the native client runs on the server and can reduce the records returned over the network. Choose deliberately, especially for large sets.

Production safety

The connection dialog includes a Production Cluster setting. When enabled, the driver blocks operations such as truncate and import that are unsafe to run accidentally. Generated or copied code should still be reviewed before execution, particularly writes, deletes, imports, and transaction commits.

Project layout

AIContext/          Embedded Markdown used to construct AI prompts
Extensions/         Driver helper implementation
linqpad-samples/    Runnable LINQPad samples and demo data
media/              README screenshots and AI demo media
docs/               User and contributor documentation
*.cs                Driver implementation

See the media catalog for screenshots, diagrams, presentations, and videos.

The Markdown files in AIContext/ are runtime inputs. Their names are referenced by AerospikeAIContext.cs; do not rename them without updating the loader and validating generated prompts. See AI context internals.

Requirements

  • LINQPad 9+
  • .NET 8 runtime supported by the installed LINQPad version
  • Access to an Aerospike cluster

The project builds as net8.0-windows with WPF and is packaged under lib/net8.0; LINQPad's XPF compatibility layer supplies the UI implementation on macOS.

Resources

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
7.0.53.17 226 7/18/2026
7.0.53.14 116 7/17/2026
6.1.0 187 1/30/2026
6.0.7 403 8/5/2025
6.0.5 242 7/11/2025
6.0.4 330 7/9/2025 6.0.4 is deprecated because it is no longer maintained.
6.0.3 328 7/8/2025 6.0.3 is deprecated.
6.0.2 333 7/8/2025 6.0.2 is deprecated because it is no longer maintained and has critical bugs.
6.0.0 295 5/17/2025
5.6.0 271 5/17/2025
5.0.0 352 2/14/2025 5.0.0 is deprecated because it is no longer maintained.
Loading failed