Cohesive.Relations
0.1.0-alpha.80
dotnet add package Cohesive.Relations --version 0.1.0-alpha.80
NuGet\Install-Package Cohesive.Relations -Version 0.1.0-alpha.80
<PackageReference Include="Cohesive.Relations" Version="0.1.0-alpha.80" />
<PackageVersion Include="Cohesive.Relations" Version="0.1.0-alpha.80" />
<PackageReference Include="Cohesive.Relations" />
paket add Cohesive.Relations --version 0.1.0-alpha.80
#r "nuget: Cohesive.Relations, 0.1.0-alpha.80"
#:package Cohesive.Relations@0.1.0-alpha.80
#addin nuget:?package=Cohesive.Relations&version=0.1.0-alpha.80&prerelease
#tool nuget:?package=Cohesive.Relations&version=0.1.0-alpha.80&prerelease
Cohesive.Relations
Cohesive.Relations lets applications describe relationships, projections, filters, and queries in typed C# while
leaving storage placement and execution strategy to compilers and adapters.
Install
dotnet add package Cohesive.Relations
Author a relation
A complete Load -> LoadDto relation needs no hand-authored node IDs, binding names, source placement, or adapter
configuration:
var author = RelationQuery.Expression();
var loads = author.Source<Load>();
var loadDtos = author.Project(
loads,
(Load load) => new LoadDto
{
Id = load.Id,
Status = load.Status
});
var relation = loadDtos.BuildRelation(dto => dto.Id);
The authoring session derives the logical nodes, bindings, shapes, field assignments, relation identity, display name,
and provenance. relation contains the canonical definition and structured validation diagnostics.
Add a relationship when the result needs another fact:
var author = RelationQuery.Expression();
var loads = author.Source<Load>();
var customers = author.Traverse<Load, Customer>(
loads,
load => load.CustomerId);
var searchDocuments = author.Project(
customers,
(Load load, Customer customer) => new LoadSearchDto
{
Id = load.Id,
CustomerName = customer.Name
});
var loadSearch = searchDocuments.BuildRelation(dto => dto.Id);
The same traversal may become an in-memory lookup, a PostgreSQL join, bounded source reads followed by local correlation, or another capability-compatible realization. The relation itself does not change.
Use it for
- DTO mapping and enrichment.
- Independently invoked row and aggregation queries.
- Application read models, API results, integration payloads, and reports.
- Field-demand, dependency, lineage, and missing-input analysis.
- Relation-derived materialized views and targeted rebuild planning.
- Portable execution across supplied objects and registered physical sources.
How execution stays honest
The canonical relation/query document is the semantic authority. An invocation selects results and parameters; compilation derives the exact fields and operations it needs. A target must prove those requirements against its capabilities and operating boundaries. Unsupported semantics and incomplete source evidence produce structured diagnostics rather than a weakened query or a misleading empty result.
The expression API is the normal application surface. Structural authoring and direct IR construction remain available for importers, generators, persistence tooling, and compiler tests.
Continue
- Getting started builds, evaluates, and enriches a relation.
- Execution and adapters covers supplied facts, acquisition, placement, and native compilation.
- Diagnostics explains incomplete evidence and requirement gaps.
- Capability reference is generated from the implemented target profiles.
- Migration covers the retired relation-query stack.
- Internals retains the complete semantic model, compiler architecture, use cases, and design rationale.
Adapter-specific guides are available for
Cohesive.Adapters.Postgres,
Cohesive.Adapters.Cosmos, and
Cohesive.Adapters.Elastic.
| 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
- Cohesive (>= 0.1.0-alpha.80)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Cohesive.Relations:
| Package | Downloads |
|---|---|
|
Cohesive.Transitions
Cohesive semantic system definition and orchestration building blocks. |
|
|
Cohesive.Processes
Cohesive semantic system definition and orchestration building blocks. |
|
|
Cohesive.Storage
Cohesive semantic system definition and orchestration building blocks. |
|
|
Cohesive.Host
Cohesive semantic system definition and orchestration building blocks. |
|
|
Cohesive.Identity
Cohesive semantic system definition and orchestration building blocks. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.80 | 78 | 9/8/2026 |
| 0.1.0-alpha.79 | 120 | 9/7/2026 |
| 0.1.0-alpha.78 | 116 | 9/7/2026 |
| 0.1.0-alpha.77 | 108 | 9/7/2026 |
| 0.1.0-alpha.76 | 135 | 9/6/2026 |
| 0.1.0-alpha.75 | 147 | 9/6/2026 |
| 0.1.0-alpha.74 | 144 | 9/6/2026 |
| 0.1.0-alpha.73 | 159 | 9/5/2026 |
| 0.1.0-alpha.72 | 139 | 9/5/2026 |
| 0.1.0-alpha.71 | 138 | 9/4/2026 |
| 0.1.0-alpha.70 | 147 | 9/4/2026 |
| 0.1.0-alpha.69 | 142 | 9/2/2026 |
| 0.1.0-alpha.68 | 134 | 8/30/2026 |
| 0.1.0-alpha.67 | 256 | 8/26/2026 |
| 0.1.0-alpha.66.5 | 184 | 9/6/2026 |
| 0.1.0-alpha.66.4 | 230 | 8/30/2026 |
| 0.1.0-alpha.66.3 | 145 | 8/29/2026 |
| 0.1.0-alpha.66.2 | 143 | 8/27/2026 |
| 0.1.0-alpha.66.1 | 146 | 8/26/2026 |
| 0.1.0-alpha.66 | 192 | 8/25/2026 |