Pure.Chart.RichRelationalModel
0.1.0-preview.4.0.0
dotnet add package Pure.Chart.RichRelationalModel --version 0.1.0-preview.4.0.0
NuGet\Install-Package Pure.Chart.RichRelationalModel -Version 0.1.0-preview.4.0.0
<PackageReference Include="Pure.Chart.RichRelationalModel" Version="0.1.0-preview.4.0.0" />
<PackageVersion Include="Pure.Chart.RichRelationalModel" Version="0.1.0-preview.4.0.0" />
<PackageReference Include="Pure.Chart.RichRelationalModel" />
paket add Pure.Chart.RichRelationalModel --version 0.1.0-preview.4.0.0
#r "nuget: Pure.Chart.RichRelationalModel, 0.1.0-preview.4.0.0"
#:package Pure.Chart.RichRelationalModel@0.1.0-preview.4.0.0
#addin nuget:?package=Pure.Chart.RichRelationalModel&version=0.1.0-preview.4.0.0&prerelease
#tool nuget:?package=Pure.Chart.RichRelationalModel&version=0.1.0-preview.4.0.0&prerelease
Pure.Chart.RichRelationalModel
Concrete immutable record implementations of the rich relational chart model for the Pure ecosystem.
Overview
Pure.Chart.RichRelationalModel provides sealed record implementations for chart domain entities that combine both the structural (model) and relational aspects of a chart into a single strongly-typed, immutable object. Each record implements a corresponding interface from Pure.Chart.RichRelationalModel.Abstractions and exposes primitive-typed properties via the Pure.Primitives.Abstractions contracts (IGuid, IString).
A "rich relational" model is one that carries not only foreign-key identifiers but also the fully resolved navigation objects — e.g. a ChartRichRelationalModel holds both TypeId (IGuid) and Type (IChartType), both XAxisId/YAxisId and the resolved IAxis instances.
Types
All types live in the Pure.Chart.RichRelationalModel namespace.
| Type | Implements | Properties |
|---|---|---|
ChartRichRelationalModel |
IChartRichRelationalModel |
Id, Title, Description, TypeId, Type, XAxisId, XAxis, YAxisId, YAxis, Series |
AxisRichRelationalModel |
IAxisRichRelationalModel |
Id, Legend |
ChartSeriesRichRelationalModel |
IChartSeriesRichRelationalModel |
Id, ChartId, Legend, XAxisSource, YAxisSource, LineType |
ChartTypeRichRelationalModel |
IChartTypeRichRelationalModel |
Id, Name |
Each record provides two constructors:
- Copy constructor — accepts the corresponding rich relational interface, copies all properties.
- Full constructor — accepts each property individually for explicit construction.
Design Principles
- Immutable — all properties are init-only; records enforce value equality.
- Composable — each type implements the interface hierarchy from
Pure.Chart.RichRelationalModel.Abstractions, which itself composesIChart*andIChartRelationalModel*interfaces. - AOT-compatible — the library is trimming- and AOT-safe (
IsAotCompatible = true).
Dependencies
Pure.Chart.RichRelationalModel.Abstractions— interface contracts forIChartRichRelationalModel,IAxisRichRelationalModel,IChartSeriesRichRelationalModel, andIChartTypeRichRelationalModel
Target Frameworks
- .NET 7
- .NET 8
- .NET 9
- .NET 10
Installation
dotnet add package Pure.Chart.RichRelationalModel
Usage
using Pure.Chart.RichRelationalModel;
// Construct from individual primitives
IChartRichRelationalModel chart = new ChartRichRelationalModel(
id: myGuid,
title: myTitle,
description: myDescription,
typeId: typeGuid,
type: new ChartTypeRichRelationalModel(typeGuid, typeName),
xAxisId: xGuid,
xAxis: new AxisRichRelationalModel(xGuid, xLegend),
yAxisId: yGuid,
yAxis: new AxisRichRelationalModel(yGuid, yLegend),
series: chartSeriesCollection
);
// Or copy-construct from any IChartRichRelationalModel
IChartRichRelationalModel copy = new ChartRichRelationalModel(existingChart);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. 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 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
- Pure.Chart.RichRelationalModel.Abstractions (>= 0.1.0-preview.5.0.0)
-
net7.0
- Pure.Chart.RichRelationalModel.Abstractions (>= 0.1.0-preview.5.0.0)
-
net8.0
- Pure.Chart.RichRelationalModel.Abstractions (>= 0.1.0-preview.5.0.0)
-
net9.0
- Pure.Chart.RichRelationalModel.Abstractions (>= 0.1.0-preview.5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.4.0.0 | 76 | 10/23/2026 |
| 0.1.0-preview.3.0.0 | 662 | 4/26/2026 |
| 0.1.0-preview.2.0.0 | 218 | 4/19/2026 |
| 0.1.0-preview.1.0.0 | 392 | 2/27/2026 |
| 0.1.0-preview.0.1.0 | 123 | 2/23/2026 |