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
<PackageReference Include="Aerospike.Database.LINQPadDriver" Version="7.0.53.17" />
<PackageVersion Include="Aerospike.Database.LINQPadDriver" Version="7.0.53.17" />
<PackageReference Include="Aerospike.Database.LINQPadDriver" />
paket add Aerospike.Database.LINQPadDriver --version 7.0.53.17
#r "nuget: Aerospike.Database.LINQPadDriver, 7.0.53.17"
#:package Aerospike.Database.LINQPadDriver@7.0.53.17
#addin nuget:?package=Aerospike.Database.LINQPadDriver&version=7.0.53.17
#tool nuget:?package=Aerospike.Database.LINQPadDriver&version=7.0.53.17
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
AValueandAPrimaryKey. - 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.
Quick start
1. Install the driver
In LINQPad:
- Select Add connection.
- Select View more drivers.
- Choose Show all drivers and search for
Aerospike. - 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 | Versions 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. |
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.