DataOil.EntityFrameworkCore
0.1.4
Prefix Reserved
dotnet add package DataOil.EntityFrameworkCore --version 0.1.4
NuGet\Install-Package DataOil.EntityFrameworkCore -Version 0.1.4
<PackageReference Include="DataOil.EntityFrameworkCore" Version="0.1.4" />
<PackageVersion Include="DataOil.EntityFrameworkCore" Version="0.1.4" />
<PackageReference Include="DataOil.EntityFrameworkCore" />
paket add DataOil.EntityFrameworkCore --version 0.1.4
#r "nuget: DataOil.EntityFrameworkCore, 0.1.4"
#:package DataOil.EntityFrameworkCore@0.1.4
#addin nuget:?package=DataOil.EntityFrameworkCore&version=0.1.4
#tool nuget:?package=DataOil.EntityFrameworkCore&version=0.1.4
DataOil.EntityFrameworkCore
The Entity Framework Core 10 provider for Data Oil. Your DbContext stays an ordinary strongly
typed one; the provider learns each database's schema at run time, checks your model against it,
translates LINQ into the engine's own dialect, and saves with the record's version as the
concurrency token. It knows the name of no type or property in any database: the schema is data it
reads, not code it was compiled with.
net10.0, on DataOil.Client 0.2.2. Delivered from Data Oil's own package directory,
dopackages/; the public registries when that release is decided.
Sixty seconds
DbContextOptions<Shop> options = new DbContextOptionsBuilder<Shop>()
.UseDataOil("Endpoint=https://acme.dataoil.tech;Database=bookshop;Username=...;Password=...")
.Options;
await using Shop shop = new(options);
List<Customer> customers = await shop.Customers
.Where(customer => customer.Name == "John")
.ToListAsync();
customers[0].City = "Fremantle";
await shop.SaveChangesAsync(); // guarded by @version
What to know
- It talks to the engine's HTTP API, not the PostgreSQL port, because only the API has the schema with its version, the record identity and statements that answer what they wrote.
- A context checks its model against the schema the first time it reaches the database, as this credential may read it, and every problem is reported together. A schema that changes while the context is alive is met on its next statement: followed if the model still holds, refused naming both versions if it does not.
- A record's key is
@ridunless the model configures one with a unique index behind it, and@versionis the concurrency token. context.DataOil()runs the engine's own statements over the same connection and transaction, for what EF cannot express;DataOilSchemaContextis a context whose model is the schema, for a database whose shape you did not know when you compiled.- Migrations are checked against the live schema before they apply, because ingestion writes
the schema too;
EnsureDeleteddrops through the engine's route and every guardrail it has.
The reference is docs/efcore.md in the engine repository, and every example on it is run by
DocumentationTests.
LINQPad 9
src/DataOil.LINQPad is a LINQPad 9 driver built on the provider, packed as DataOil.LINQPad with
the linqpaddriver tag. Add the folder holding the packages as a driver package source in LINQPad
9 and install it; it appears as Data Oil under Add Connection. See
its README. While developing it,
dotnet publish src/DataOil.LINQPad -c Release -o "%LOCALAPPDATA%\LINQPad\Drivers\DataContext\NetCore\DataOil.LINQPad"
installs it as a file-based driver, and LINQPad picks up the new build the next time it starts.
Tests
tests/DataOil.EntityFrameworkCore.Tests hosts the real engine in the test process, from the engine
repository beside this one (../dataoildbengine/ClassLibrary1), and runs every test against what it
answers.
dotnet test tests/DataOil.EntityFrameworkCore.Tests
Source and licensing
Proprietary: the Data Oil Software Licence licenses these packages only for legitimate use with Data Oil, and
prohibits copying, modifying, redistributing or reverse engineering them and any attack on or unauthorised
access to the platform; see LICENSE and NOTICE. The Data Oil service itself is governed by the
customer agreement.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- DataOil.Client (>= 0.2.2)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.13)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DataOil.EntityFrameworkCore:
| Package | Downloads |
|---|---|
|
DataOil.LINQPad
The LINQPad 9 driver for Data Oil. Connect to a database and its types become a typed Entity Framework Core context, read from the schema as your credential may read it; queries run through DataOil.EntityFrameworkCore, and the statements it sends appear in the SQL tab. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.4 | 102 | 10/24/2026 |