![]() |
VOOZH | about |
dotnet add package Oracle.EntityFrameworkCore --version 10.23.26200
NuGet\Install-Package Oracle.EntityFrameworkCore -Version 10.23.26200
<PackageReference Include="Oracle.EntityFrameworkCore" Version="10.23.26200" />
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="10.23.26200" />Directory.Packages.props
<PackageReference Include="Oracle.EntityFrameworkCore" />Project file
paket add Oracle.EntityFrameworkCore --version 10.23.26200
#r "nuget: Oracle.EntityFrameworkCore, 10.23.26200"
#:package Oracle.EntityFrameworkCore@10.23.26200
#addin nuget:?package=Oracle.EntityFrameworkCore&version=10.23.26200Install as a Cake Addin
#tool nuget:?package=Oracle.EntityFrameworkCore&version=10.23.26200Install as a Cake Tool
Release Notes for Oracle Entity Framework Core 10 NuGet Package
April 2026
Oracle Data Provider for .NET (ODP.NET) Entity Framework (EF) Core is a database provider that allows Entity Framework Core to be used with Oracle databases. EF Core is a cross-platform Microsoft object-relational mapper that enables .NET developers to work with relational databases using .NET objects.
This document provides information that supplements the ODP.NET Entity Framework Core documentation.
modelBuilder.Entity<Blog>()
.HasIndex(b => b.Url)
.HasFilter("Url is not null");
// C# - computed columns code sample
modelBuilder.Entity<Blog>()
.Property(b => b.BlogOwner)
.HasComputedColumnSql("\"LastName\" || '','' || \"FirstName\"");
modelBuilder.Entity<Person>()
.UpdateUsingStoredProcedure(
"People_Update",
storedProcedureBuilder =>
{
storedProcedureBuilder.HasRowsAffectedReturnValue(true)
});
public class MyTable
{
public int Id { get; set; }
public int? Value { get; set; }
}
The following LINQ will not work against Oracle Database 21c or lower:
var query = from t in context.Table
group t.Id by t.Value
into tg
select new
{
A = tg.Key,
B = context.Table.Where(t => t.Value == tg.Max() * 6).Max(t => (int?)t.Id)
};
This is due to LINQ creating the following SQL query:
SELECT "t"."Value" "A", "t"."Id", (
SELECT MAX("t0"."Id")
FROM "MyTable" "t0"
WHERE (("t0"."Value" = "t"."Id") OR ("t0"."Value" IS NULL AND MAX("t"."Id") IS NULL))) "B"
FROM "MyTable" "t"
GROUP BY "t"."Value"
The issue is because the inner select query uses a MAX function which refers to a column from the outer select query. Also the way in which the MAX function is used within the WHERE clause is not supported in Oracle Database. The same issue is also applicable when the MIN function is used.
public class Blog
{
public int Id { get; private set; }
public string Name { get; set; }
public List<Post> Posts { get; } = new();
}
public class Post
{
public int Id { get; private set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime PublishedOn { get; set; }
}
Trying to update the Blog.Name using below LINQ would throw 'ORA-00933: SQL command not properly ended'
var query = from blog in context.Set<Blog>().Where(c => c.Name == "MyBlog")
join post in context.Set<Post>().Where(p => p.Title == "Oracle")
on blog.Name equals post.Title
select new { blog, post };
var updateQuery = query.ExecuteUpdate(s => s.SetProperty(c => c.blog.Name, "Updated"));
This is due to LINQ creating the following SQL query, which Oracle database does not support.
UPDATE "Blogs" "b"
SET "b"."Name" = N'Updated'
FROM (
SELECT "p"."Id", "p"."BlogId", "p"."Content", "p"."PublishedOn", "p"."Title"
FROM "Posts" "p"
WHERE "p"."Title" = N'Oracle') "t"
WHERE (("b"."Name" = "t"."Title") AND ("b"."Name" = N'MyBlog'))
public class Author
{
public int Id { get; set; }
public string Name { get; set; }
public DateTimeOffset Timeline { get; set; }
}
The following LINQ will not work:
var timeSpan = new TimeSpan(1000);
var authorsInChigley1 = context.Authors.Where(e => e.Timeline > DateTimeOffset.Now - timeSpan).ToQueryString();
Following is the PL/SQL that gets generated.
DECLARE
l_sql varchar2(32767);
l_cur pls_integer;
l_execute pls_integer;
BEGIN
l_cur := dbms_sql.open_cursor;
l_sql := 'SELECT "a"."Id", "a"."Name", "a"."Timeline"
FROM "Authors" "a"
WHERE "a"."Timeline" > (SYSDATE - :timeSpan_0)';
dbms_sql.parse(l_cur, l_sql, dbms_sql.native);
dbms_sql.bind_variable(l_cur, ':timeSpan_0', INTERVAL '0 0:0:0.0001000' DAY(8) TO SECOND(7));
l_execute:= dbms_sql.execute(l_cur);
dbms_sql.return_result(l_cur);
END;
Copyright (c) 2025, 2026, Oracle and/or its affiliates.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 5 NuGet packages that depend on Oracle.EntityFrameworkCore:
| Package | Downloads |
|---|---|
|
EFCore.BulkExtensions.Oracle
EntityFramework .Net EFCore EF Core Bulk Batch Extensions for Insert Update Delete Read (CRUD) operations on Oracle |
|
|
WalkingTec.Mvvm.Core
WalkingTec.Mvvm |
|
|
FenixAlliance.ACL.Dependencies
Application Component for the Alliance Business Suite. |
|
|
MPACKAGE.LibData.Oracle
Package Description |
|
|
HanaTech.Framework.Dapper
Package Description |
Showing the top 20 popular GitHub repositories that depend on Oracle.EntityFrameworkCore:
| Repository | Stars |
|---|---|
|
abpframework/abp
Open-source web application framework for ASP.NET Core! Offers an opinionated architecture to build enterprise software solutions with best practices on top of the .NET. Provides the fundamental infrastructure, cross-cutting-concern implementations, startup templates, application modules, UI themes, tooling and documentation.
|
|
|
elsa-workflows/elsa-core
The Workflow Engine for .NET
|
|
|
microsoft/aspire
Aspire is the tool for code-first, extensible, observable dev and deploy.
|
|
|
danielgerlag/workflow-core
Lightweight workflow engine for .NET Standard
|
|
|
dotnetcore/Util
Util是一个.Net平台下的应用框架,旨在提升中小团队的开发能力,由工具类、分层架构基类、Ui组件,配套代码生成模板,权限等组成。
|
|
|
dotnetcore/WTM
Use WTM to write .netcore app fast !!!
|
|
|
cq-panda/Vue.NetCore
(已支持sqlsugar).NetCore、.Net6、Vue2、Vue3、Vite、TypeScript、Element plus+uniapp前后端分离,全自动生成代码;支持移动端(ios/android/h5/微信小程序。http://www.volcore.xyz/
|
|
|
borisdj/EFCore.BulkExtensions
Entity Framework EF Core efcore Bulk Batch Extensions with BulkCopy in .Net for Insert Update Delete Read (CRUD), Truncate and SaveChanges operations on SQL Server, PostgreSQL, MySQL, SQLite, Oracle
|
|
|
dotnetcore/osharp
OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。
|
|
|
ErikEJ/EFCorePowerTools
Entity Framework Core Power Tools - reverse engineering, migrations and model visualization in Visual Studio & CLI
|
|
|
tareqimbasher/NetPad
A cross-platform C# editor and playground.
|
|
|
Giorgi/EntityFramework.Exceptions
Strongly typed exceptions for Entity Framework Core. Supports SQLServer, PostgreSQL, SQLite, Oracle and MySql.
|
|
|
IoTSharp/IoTSharp
IoTSharp is an open-source IoT platform for data collection, processing, visualization, and device management.
|
|
|
dotnetcore/sharding-core
high performance lightweight solution for efcore sharding table and sharding database support read-write-separation .一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案,具有零依赖、零学习成本、零业务代码入侵
|
|
|
iioter/iotgateway
An industrial IoTGateway with B/S architecture that enables bidirectional communication between industrial devices (southbound connections) and IoT platforms (northbound connections). It supports numerous industrial protocols, and can connect to various IoT cloud platforms.
|
|
|
optimajet/WorkflowEngine.NET
WorkflowEngine.NET - component that adds workflow in your application. It can be fully integrated into your application, or be in the form of a specific service (such as a web service).
|
|
|
bing-framework/Bing.NetCore
Bing是基于 .net core 3.1 的框架,旨在提升团队的开发输出能力,由常用公共操作类(工具类、帮助类)、分层架构基类,第三方组件封装,第三方业务接口封装等组成。
|
|
|
masastack/MASA.Framework
.NET next-generation microservice development framework, which provides cloud native best practices based on Dapr.
|
|
|
VictorTzeng/Zxw.Framework.NetCore
基于EF Core的Code First模式的DotNetCore快速开发框架,其中包括DBContext、IOC组件autofac和AspectCore.Injector、代码生成器(也支持DB First)、基于AspectCore的memcache和Redis缓存组件,以及基于ICanPay的支付库和一些日常用的方法和扩展,比如批量插入、更新、删除以及触发器支持,当然还有demo。欢迎提交各种建议、意见和pr~
|
|
|
Coldairarrow/EFCore.Sharding
Database Sharding For EFCore
|
| Version | Downloads | Last Updated |
|---|---|---|
| 10.23.26200 | 264,241 | 4/6/2026 |
| 10.23.26100 | 892,014 | 1/21/2026 |
| 10.23.26000 | 710,304 | 11/24/2025 |
| 9.23.26200 | 22,918 | 4/6/2026 |
| 9.23.26100 | 64,846 | 1/21/2026 |
| 9.23.26000 | 273,337 | 10/14/2025 |
| 9.23.90 | 1,067,264 | 7/1/2025 |
| 9.23.80 | 601,989 | 4/4/2025 |
| 8.23.26200 | 19,241 | 4/6/2026 |
| 8.23.26100 | 53,732 | 1/21/2026 |
| 8.23.26000 | 112,828 | 10/14/2025 |
| 8.23.90 | 300,162 | 7/1/2025 |
| 8.23.80 | 273,252 | 4/4/2025 |
| 8.23.70 | 2,074,631 | 12/25/2024 |
| 8.21.210 | 3,986 | 1/21/2026 |
| 8.21.200 | 16,556 | 10/10/2025 |
| 8.21.190 | 20,026 | 7/1/2025 |
| 8.21.180 | 34,187 | 4/4/2025 |
| 8.21.170 | 155,387 | 12/24/2024 |
| 6.21.170 | 94,270 | 12/24/2024 |