Write C# code
EF Core handles the SQL for DB2 for i

With the NTi Data Provider Entity Framework Core extension, seamlessly map your .NET objects to DB2 for i tables and vice versa, without writing any SQL.

  • Accelerated development
  • EF Core standard
  • Specifically built for DB2 for i
DB2 for i database DB2 for i
CUSTOMER
Column Type
PKID INTEGER
NAME VARCHAR(255)
EMAIL VARCHAR(255)
BIRTHDATE DATE

DB2 for i
on .NET standards

With EF Core, work with IBM i like any modern database.

Single codebase, multiple databases

With EF Core, application code is database-agnostic. SQL is generated automatically based on the database in use.

Standard .NET development

Same environment and tools as any standard .NET project. NTi provides access to IBM i data.

No impact on IBM i

EF Core coexists with existing IBM i applications. Current SQL queries can be retained.

Widely available skills

.NET developers already master EF Core. They can therefore work on IBM i without specific expertise.

Entity Framework Core Logo
DB2 FOR i
SQL SERVER
ORACLE
POSTGRESQL

Develop with modern .NET performance

Access DB2 for i natively from C#. EF Core abstracts the data access layer and generates optimized SQL automatically.

  • LINQ power

    LINQ is the native C# language mechanism for querying data using strongly typed expressions, with IntelliSense support and compile-time validation. EF Core leverages LINQ to automatically generate SQL tailored for DB2 for i.

  • Automated CRUD operations

    Create, read, update, and delete operations generated automatically. EF Core handles joins and complex relationships.

  • High-performance, secure SQL

    SQL queries are generated automatically by EF Core, in a strongly typed, parameterized manner tailored for DB2 for i, ensuring performance, data consistency, and protection against SQL injection.

efcore-features.code.title.cs

List<User> users = await context.Users
    .Where(u => u.Name == "Smith")
    .ToListAsync();
efcore-features.code.title.sql

SELECT *
FROM USERS
WHERE NAME = 'Smith';

An extension
built specifically for IBM i

Precise DB2 type mapping

Native support for IBM i encodings (EBCDIC, Unicode) and exact mapping of DB2 for i types (CHAR, DECIMAL, DATE, etc.) to .NET types, including support for scalar functions.

Modern SQL

Leverage the DB2 for i SQL engine: integrity constraints, relationships, and indexes are handled by native DB2 for i mechanisms. EF Core relies directly on these capabilities without re-implementing them at the application layer.

Schema management

Precisely target the IBM i libraries used by the application. Schema configuration is managed on the .NET side, while preserving the existing database organization.

Available via NuGet

Like NTi data provider, the EF Core extension is available through the NuGet package manager and can be referenced directly in your .NET project. Compatible with .NET 8, Windows, Linux, and Docker.

DB First or Code First
The choice is yours

DB First

Application modernization

From an existing database and with a single command, automatically generate the data access layer as well as the interface components of your .NET application

Key features

  • Automatic scaffolding from an existing database
  • Generate C# entities from the existing schema
  • Coexistence with existing structures and business logic
  • Compatibility with stored procedures and existing processing

Native integration within the.NET ecosystem

All modern .NET capabilities available directly on IBM i with the NTi EF Core extension

ASP.NET Identity

Manage users, roles, and permissions directly on DB2 for i.

Authentification

Native support for MFA and external login providers (Azure AD, Google, Okta).

DevOps & industrialization

Native integration with .NET tooling: NuGet, Docker, CI/CD, and standardized environments.

Business impact

With Entity Framework Core, NTi brings IBM i development into modern .NET practices.

Real-world examples
Build more, code less

Modern web applications delivered faster with .NET

Context

Enable customers to view their orders online.
Data is distributed across multiple IBM i tables (customers, orders, pricing).

Implementation with EF Core

  • DB First approach: automatic generation of C# code from existing tables
  • Developers work with C# objects instead of writing SQL
  • EF Core automatically generates joins between tables

Outcomes

Delivery of a modern web portal where each customer securely accesses their own data, based on the business rules already defined in the IBM i ERP.

Any questions?