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.
dotnet add package EntityFrameworkCore.OpenEdge --version 9.0.6
optionsBuilder.UseOpenEdge(
"Driver=Progress OpenEdge 11.7 Driver;" +
"HOST=localhost;PORT=10000;UID=<user>;PWD=<password>;DIL=1;Database=<db>");
optionsBuilder.UseOpenEdge("dsn=MyDb;password=mypassword");
optionsBuilder.UseOpenEdge(
connectionString: "dsn=MyDb;password=mypassword",
defaultSchema: "myschema");
Scaffold-DbContext "dsn=MyDb;password=mypassword" EntityFrameworkCore.OpenEdge -OutputDir Models
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 ) |
- 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.
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.
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
.
Apache-2.0 – see LICENSE.