Apache.Calcite.EntityFrameworkCore.Core
1.0.0-pre.42
dotnet add package Apache.Calcite.EntityFrameworkCore.Core --version 1.0.0-pre.42
NuGet\Install-Package Apache.Calcite.EntityFrameworkCore.Core -Version 1.0.0-pre.42
<PackageReference Include="Apache.Calcite.EntityFrameworkCore.Core" Version="1.0.0-pre.42" />
<PackageVersion Include="Apache.Calcite.EntityFrameworkCore.Core" Version="1.0.0-pre.42" />
<PackageReference Include="Apache.Calcite.EntityFrameworkCore.Core" />
paket add Apache.Calcite.EntityFrameworkCore.Core --version 1.0.0-pre.42
#r "nuget: Apache.Calcite.EntityFrameworkCore.Core, 1.0.0-pre.42"
#:package Apache.Calcite.EntityFrameworkCore.Core@1.0.0-pre.42
#addin nuget:?package=Apache.Calcite.EntityFrameworkCore.Core&version=1.0.0-pre.42&prerelease
#tool nuget:?package=Apache.Calcite.EntityFrameworkCore.Core&version=1.0.0-pre.42&prerelease
Apache.Calcite.EntityFrameworkCore.Core
Shared primitives for Apache Calcite for Entity Framework Core — the type mapping and value marshalling that both the EF Core provider and the Calcite adapter build on.
This is a support package. You almost never install it directly: it arrives transitively with
Apache.Calcite.EntityFrameworkCore and
Apache.Calcite.EntityFrameworkCore.Adapter.
Reference it on its own only when you are writing your own Calcite integration and want the same mappings the
provider and adapter use.
dotnet add package Apache.Calcite.EntityFrameworkCore.Core
Why it exists
The provider translates EF Core LINQ into Calcite SQL; the adapter translates Calcite plans back into EF Core LINQ.
Both cross the same boundary — CLR types on one side, Calcite's RelDataType and Java-boxed values on the other —
and the two directions have to agree exactly. A decimal the provider writes must read back as the same decimal,
and a RelDataType the adapter derives for a column must match the one the provider declared for it. Keeping that
mapping in one package is what makes the round trip stable.
What is in it
Everything lives in the Apache.Calcite.EntityFrameworkCore.Core namespace.
| type | role |
|---|---|
CalciteTypeMapper |
the mapping itself, in both directions: CLR Type → SqlTypeName, EF Core IProperty → RelDataType (honouring the property's own facets and nullability), and RelDataType → CLR Type |
CalciteValueConverter |
boxes CLR primitives into the Java equivalents Calcite's in-memory evaluator expects, and unboxes them on the way back |
BigDecimalConverter |
lossless decimal ⇄ java.math.BigDecimal, converted through the mantissa and scale rather than through a string or a double |
ClrDataTypeGenerator |
emits and caches dynamic record types for intermediate row shapes, one per distinct ordered field list, with value equality so they work as GroupBy keys and set-operation elements |
ReadOnlyCollectionComparer<T> |
structural equality over IReadOnlyCollection<T>, used to key those cached row types |
CalciteTypeMapper.ToClrType maps struct (row) types through ClrDataTypeGenerator, and returns object for
scalar type names with no direct CLR counterpart rather than throwing — the caller decides what to do with an
unmapped type.
Requirements
.NET 10, and a JVM-free Calcite supplied by IKVM — Calcite runs in-process, so there is no JDBC driver and no Avatica server to deploy.
Links
- Repository and full documentation
Apache.Calcite.EntityFrameworkCore— the EF Core providerApache.Calcite.EntityFrameworkCore.Adapter— the Calcite adapter- calcite-dotnet — Apache Calcite for .NET
License
| Product | Versions 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. |
-
net10.0
- Apache.Calcite.Data (>= 2.0.0-pre.9)
- IKVM (>= 8.16.0)
- IKVM.Java.Extensions (>= 8.16.0)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.8)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Apache.Calcite.EntityFrameworkCore.Core:
| Package | Downloads |
|---|---|
|
Apache.Calcite.EntityFrameworkCore
Apache Calcite provider for Entity Framework Core. Plans and executes SQL against any Calcite-modeled data source via IKVM. |
|
|
Apache.Calcite.EntityFrameworkCore.Adapter
Apache Calcite adapter convention that executes relational plans as Entity Framework Core LINQ queries. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-pre.42 | 73 | 9/1/2026 |
| 1.0.0-pre.41 | 128 | 9/1/2026 |