EntityFrameworkCore.OpenEdge
9.0.6
dotnet add package EntityFrameworkCore.OpenEdge --version 9.0.6
NuGet\Install-Package EntityFrameworkCore.OpenEdge -Version 9.0.6
<PackageReference Include="EntityFrameworkCore.OpenEdge" Version="9.0.6" />
<PackageVersion Include="EntityFrameworkCore.OpenEdge" Version="9.0.6" />
<PackageReference Include="EntityFrameworkCore.OpenEdge" />
paket add EntityFrameworkCore.OpenEdge --version 9.0.6
#r "nuget: EntityFrameworkCore.OpenEdge, 9.0.6"
#:package EntityFrameworkCore.OpenEdge@9.0.6
#addin nuget:?package=EntityFrameworkCore.OpenEdge&version=9.0.6
#tool nuget:?package=EntityFrameworkCore.OpenEdge&version=9.0.6
EntityFrameworkCore.OpenEdge
EntityFrameworkCore.OpenEdge is an Entity Framework Core 9 provider that lets you target Progress OpenEdge databases via ODBC.
⚠️ Status: This library is under active development. While it is already used in production scenarios, you may still encounter bugs or missing edge-cases. Please open an issue if you run into problems.
Quick Start
Install
dotnet add package EntityFrameworkCore.OpenEdge --version 9.0.6
DSN-less connection
optionsBuilder.UseOpenEdge(
"Driver=Progress OpenEdge 11.7 Driver;" +
"HOST=localhost;PORT=10000;UID=<user>;PWD=<password>;DIL=1;Database=<db>");
Using a DSN
optionsBuilder.UseOpenEdge("dsn=MyDb;password=mypassword");
Custom schema (defaults to "pub")
optionsBuilder.UseOpenEdge(
connectionString: "dsn=MyDb;password=mypassword",
defaultSchema: "myschema");
Reverse-engineer an existing database
Scaffold-DbContext "dsn=MyDb;password=mypassword" EntityFrameworkCore.OpenEdge -OutputDir Models
Feature Matrix (EF Core 9)
Area | Status | Notes |
---|---|---|
Queries | ✅ | SELECT , WHERE , ORDER BY , GROUP BY , paging (Skip /Take ), aggregates |
Joins / Include |
✅ | INNER JOIN , LEFT JOIN , filtered Include s |
String operations | ✅ | Contains , StartsWith , EndsWith , Length |
CRUD | ✅ | INSERT , UPDATE , DELETE – one command per operation (OpenEdge limitation) |
Scaffolding | ✅ | Scaffold-DbContext |
Nested queries | ✅ | Skip /Take inside sub-queries (new in 9.0.4) |
DateTime literal support | ✅ | { ts 'yyyy-MM-dd HH:mm:ss' } formatting |
Date/Time operations | ✅ | DateOnly properties (Year , Month , Day , DayOfYear , DayOfWeek ); methods (FromDateTime , AddDays , AddMonths , AddYears ) |
OpenEdge Gotchas
- Primary keys – OpenEdge doesn’t enforce uniqueness. Use
rowid
or define composite keys - No batching /
RETURNING
– each modification executes individually; concurrency detection is limited.
See the OpenEdge SQL Reference for database specifics.
Legacy 1.x Line (netstandard2.0 / EF Core 2.1)
The original 1.x versions target netstandard 2.0 and EF Core 2.1.
They remain on NuGet for applications that cannot yet migrate to .NET 8/9.
Package | Framework | EF Core | Install |
---|---|---|---|
1.0.11 (latest stable) | netstandard2.0 | 2.1.x | dotnet add package EntityFrameworkCore.OpenEdge --version 1.0.11 |
1.0.12-rc3 | netstandard2.0 | 2.1.x | dotnet add package EntityFrameworkCore.OpenEdge --version 1.0.12-rc3 |
The 1.x branch is feature-frozen. New development happens in the 9.x line.
Contributing & Development
We welcome pull requests — especially back-ports to older EF Core branches and additional translator implementations.
- Testing requirements: EF Core providers are expected to pass the EF Core provider specification tests. Our current test harness is minimal and may not cover all cases. Contributions that add missing tests (or implement the snadard testing flow for database providers) are highly appreciated.
- Bug reports: Please include a runnable repro or failing test where possible.
For a deeper dive into the architecture (query / update pipelines, type mapping, etc.) browse the source under src/EFCore.OpenEdge
.
License
Apache-2.0 – see LICENSE.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. |
-
net9.0
- Microsoft.EntityFrameworkCore (>= 9.0.6)
- Microsoft.EntityFrameworkCore.Relational (>= 9.0.6)
- System.Data.Odbc (>= 9.0.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on EntityFrameworkCore.OpenEdge:
Package | Downloads |
---|---|
BizDoc.Infrastructure.Mfg
QAD MFG for BizDoc |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
9.0.6 | 79 | 8/22/2025 |
9.0.4 | 107 | 8/16/2025 |
1.0.12-rc3 | 582 | 11/24/2020 |
1.0.12-rc2 | 390 | 11/24/2020 |
1.0.12-rc1 | 375 | 11/24/2020 |
1.0.11 | 5,488 | 11/17/2020 |
1.0.9-rc1 | 616 | 8/30/2019 |
1.0.8 | 3,030 | 7/25/2019 |
1.0.7 | 1,910 | 12/18/2018 |
1.0.6 | 798 | 12/17/2018 |
1.0.5-beta2 | 657 | 12/13/2018 |
1.0.5-beta1 | 659 | 12/7/2018 |
1.0.4 | 776 | 12/7/2018 |
1.0.3 | 859 | 12/6/2018 |
1.0.2 | 784 | 12/4/2018 |
1.0.1 | 798 | 12/3/2018 |
1.0.0 | 841 | 12/2/2018 |
- Version 9.0.6
- Fixed issue with boolean comparison not being translated correctly in some cases
- Added support for DateOnly type in queries
- Version 9.0.5
- Added support for DateOnly type. This ensures that OpenEdge DATE columns are mapped to DateOnly type in EF Core.
- Version 9.0.4
- Fixed issue with OFFSET/FETCH parameters not being inlined correctly in complex queries
- Added support for nested queries with Skip/Take