ZibStack.NET.Core 3.2.4

dotnet add package ZibStack.NET.Core --version 3.2.4
                    
NuGet\Install-Package ZibStack.NET.Core -Version 3.2.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ZibStack.NET.Core" Version="3.2.4">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ZibStack.NET.Core" Version="3.2.4" />
                    
Directory.Packages.props
<PackageReference Include="ZibStack.NET.Core">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ZibStack.NET.Core --version 3.2.4
                    
#r "nuget: ZibStack.NET.Core, 3.2.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ZibStack.NET.Core@3.2.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ZibStack.NET.Core&version=3.2.4
                    
Install as a Cake Addin
#tool nuget:?package=ZibStack.NET.Core&version=3.2.4
                    
Install as a Cake Tool

ZibStack.NET.Core

Source generator for shared attributes and TypeScript-style utility types — used across ZibStack.NET packages for relationships, entity configuration, and type manipulation.

Install

dotnet add package ZibStack.NET.Core

Attributes

Core hosts marker attributes shared by multiple ZibStack.NET generators. They have no runtime dependencies — each consumer (Dto, Query, UI) reads only what it needs.

Relationships

[OneToOne] and [OneToMany] are consumed by:

  • Dto / Query — dot-notation filtering (team.name) and collection predicates (Any / All / Count).
  • UI — excluded from auto-generated forms/tables, surfaced as ERP-style drill-down child tables, and (with [Entity]) emitted into EF Core configuration.
public class Player
{
    public int TeamId { get; set; }

    [OneToOne]
    public Team? Team { get; set; }
}

public class Team
{
    public int Id { get; set; }
    public string Name { get; set; }

    [OneToMany(Label = "Players")]
    public ICollection<Player> Players { get; set; }
}

Entity Configuration

[Entity] opts a class into EF Core IEntityTypeConfiguration<T> generation by the UI generator. The attribute itself does not reference Microsoft.EntityFrameworkCore — only the generated configuration class does, so non-EF consumers pay nothing.

[Entity(TableName = "Players", Schema = "dbo")]
public partial class Player { ... }

Utility Types

// TypeScript Partial<T> — every property becomes PatchField<T> for partial updates;
// generated ApplyTo() writes only fields that were actually set.
// Requires ZibStack.NET.Dto for PatchField<T>.
[PartialFrom(typeof(Player))]
public partial class UpdatePlayer;

// TypeScript Pick<T, K> — plain properties + static FromEntity(source) projection.
[PickFrom(typeof(Player), nameof(Player.Name), nameof(Player.Level))]
public partial record PlayerSummary;
// Usage: var s = PlayerSummary.FromEntity(player);

// TypeScript Omit<T, K> — same as Pick but lists what to exclude.
[OmitFrom(typeof(Player), nameof(Player.Id), nameof(Player.CreatedAt))]
public partial record PlayerWithoutMeta;

// TypeScript intersection (&) — merge multiple sources. Plain properties +
// FromEntity per source + ApplyTo per source.
[IntersectFrom(typeof(Player))]
[IntersectFrom(typeof(Team))]
public partial record PlayerWithTeam;
// Usage:
//   var combined = PlayerWithTeam.FromEntity(player) with { Name = team.Name, ... };
//   combined.ApplyTo(somePlayer);
//   combined.ApplyTo(someTeam);

PartialFrom uses PatchField<T> because it models partial updates (semantics of TypeScript Partial<T> for PATCH endpoints). Pick/Omit/Intersect are pure shape transformations — they generate plain properties so the resulting record can be passed around like any other DTO without unwrapping PatchField values.

Documentation

Full documentation: mistykuu.github.io/ZibStack.NET/packages/core/

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

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
3.2.4 102 4/21/2026
3.2.3 96 4/21/2026
3.2.2 92 4/21/2026
3.2.1 94 4/21/2026
3.2.0 100 4/21/2026
3.1.5 90 4/20/2026
3.1.4 92 4/20/2026
3.1.3 90 4/20/2026
3.1.2 99 4/20/2026
3.1.1 92 4/20/2026
3.1.0 91 4/20/2026
3.0.6 91 4/20/2026
3.0.5 91 4/20/2026
3.0.4 84 4/20/2026
3.0.3 95 4/20/2026
3.0.2 98 4/20/2026
3.0.1 91 4/20/2026
3.0.0 99 4/20/2026
2.82.0 97 4/20/2026
2.8.1 94 4/18/2026
Loading failed