DataOil.LINQPad
0.1.5
Prefix Reserved
dotnet add package DataOil.LINQPad --version 0.1.5
NuGet\Install-Package DataOil.LINQPad -Version 0.1.5
<PackageReference Include="DataOil.LINQPad" Version="0.1.5" />
<PackageVersion Include="DataOil.LINQPad" Version="0.1.5" />
<PackageReference Include="DataOil.LINQPad" />
paket add DataOil.LINQPad --version 0.1.5
#r "nuget: DataOil.LINQPad, 0.1.5"
#:package DataOil.LINQPad@0.1.5
#addin nuget:?package=DataOil.LINQPad&version=0.1.5
#tool nuget:?package=DataOil.LINQPad&version=0.1.5
DataOil.LINQPad
The LINQPad 9 driver for Data Oil. Add a connection, name an engine, a database and a credential,
and the database's types become a typed Entity Framework Core context: one set and one class per
type your credential may read, a property per declared property, and the schema tree to browse
them. Queries run through DataOil.EntityFrameworkCore, and the statements it sends appear in the
SQL tab.
It needs LINQPad 9: the provider is .NET 10, and LINQPad 8 cannot run a query on .NET 10.
Installing
From the package directory. In LINQPad 9: Add Connection, then View more drivers...,
Settings, and add the folder that holds the DataOil.LINQPad package (with
DataOil.EntityFrameworkCore and DataOil.Client beside it) as a package source. Choose Show all
drivers, find DataOil.LINQPad and install it. The driver is then listed as Data Oil under
Add Connection.
From a build of your own, while the driver is being worked on: publish it into LINQPad's driver folder, which creates the folder and brings the provider, the client and their dependencies with it.
dotnet publish src/DataOil.LINQPad -c Release \
-o %LOCALAPPDATA%/LINQPad/Drivers/DataContext/NetCore/DataOil.LINQPad
LINQPad finds a driver there when it starts.
Close LINQPad before copying. LINQPad loads a driver through a cache of its own, so the files in
the driver folder are not locked while it runs: a copy over a running LINQPad can remove the old
assemblies and fail to write the new ones, leaving a folder of .pdb, .xml and .deps.json with
no assembly in it. LINQPad cannot load that, and says nothing about it - Data Oil is simply
absent from Add Connection. Close LINQPad and copy again.
LPRun9.exe checks an install without opening the window: run any .linq file naming a Data Oil
connection, and a driver that is installed and can reach the engine answers about the credential
rather than failing to load.
The connection
| Field | What it is |
|---|---|
| Endpoint | The engine's address, such as https://acme.dataoil.tech |
| Database | The database's name |
| User name and password, or API key | Your Data Oil credential; an API key is used instead of the account when given. Both are stored encrypted by LINQPad |
| Job ID | What the engine files the work under in its audit and bill; linqpad unless you say otherwise |
| Accept a self-signed certificate | For a development deployment, and nothing else |
Test reads the schema, which is the first thing the driver does on connecting, and says how many types your credential may read.
Names
A type's set is its name made plural and its class is the name itself: Customers of Customer. A
name already plural keeps it for the set and its class is the singular: Tags of Tag. A name C#
cannot spell - a space, a bracket, a keyword, a leading digit - becomes the nearest identifier, such
as App_Usage_Time_min_day for App Usage Time (min/day); the column it reads is always the name
the database has. The record's @rid is Rid on every class.
Querying
user_behaviour_dataset_rows
.Where(r => r.Age > 40)
.GroupBy(r => r.Operating_System)
.Select(g => new { Os = g.Key, Users = g.Count() })
this.DataOil().StatementAsync("...") runs a statement in the engine's own dialect over the same
connection - for a property no schema declares, a graph traversal, a vector search. A property whose
Data Oil type the provider does not map, such as EMBEDDED, is shown in the tree as not mapped and
read that way.
The samples
Two, under Samples in LINQPad for a driver installed from the package, and in
linqpad-samples/ for one installed by copying the build output:
- Data Oil - typed LINQ over your own schema - the driver's own sets: a count, a filter, a
GroupBy, ordering and paging, andRid. It names one database's types and says to change them for yours. - Data Oil - the engine's own statements - the schema as the engine describes it, and a statement in the engine's own dialect. It reads the schema for its type names, so it runs against any database unchanged.
The schema is read when the connection is opened. If it changes while LINQPad has the connection open, the provider's own check refuses the next query naming what moved; refresh the connection to read it again.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- DataOil.EntityFrameworkCore (>= 0.1.4)
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 |
|---|---|---|
| 0.1.5 | 101 | 10/24/2026 |