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
                    
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="DataOil.EntityFrameworkCore" Version="0.1.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DataOil.EntityFrameworkCore" Version="0.1.4" />
                    
Directory.Packages.props
<PackageReference Include="DataOil.EntityFrameworkCore" />
                    
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 DataOil.EntityFrameworkCore --version 0.1.4
                    
#r "nuget: DataOil.EntityFrameworkCore, 0.1.4"
                    
#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 DataOil.EntityFrameworkCore@0.1.4
                    
#: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=DataOil.EntityFrameworkCore&version=0.1.4
                    
Install as a Cake Addin
#tool nuget:?package=DataOil.EntityFrameworkCore&version=0.1.4
                    
Install as a Cake Tool

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 @rid unless the model configures one with a unique index behind it, and @version is the concurrency token.
  • context.DataOil() runs the engine's own statements over the same connection and transaction, for what EF cannot express; DataOilSchemaContext is 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; EnsureDeleted drops 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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