Lyo.People.Postgres
1.0.6
dotnet add package Lyo.People.Postgres --version 1.0.6
NuGet\Install-Package Lyo.People.Postgres -Version 1.0.6
<PackageReference Include="Lyo.People.Postgres" Version="1.0.6" />
<PackageVersion Include="Lyo.People.Postgres" Version="1.0.6" />
<PackageReference Include="Lyo.People.Postgres" />
paket add Lyo.People.Postgres --version 1.0.6
#r "nuget: Lyo.People.Postgres, 1.0.6"
#:package Lyo.People.Postgres@1.0.6
#addin nuget:?package=Lyo.People.Postgres&version=1.0.6
#tool nuget:?package=Lyo.People.Postgres&version=1.0.6
Lyo.People.Postgres
PostgreSQL persistence for Lyo.People.Models using Entity Framework Core.
Archetype A (Lyo domain). Vendor clients such as Lyo.Endato.Client map into this schema in the host. See package layout.
Features
- person. Core person data with flattened name, demographics, and JSON columns for preferences/citizenship/custom fields.
- phone_number. Base phone numbers (E.164).
- email_address. Base email addresses.
- contact_phone_number. Person-phone junction with type (mobile, home, work).
- contact_email_address. Person-email junction with type (personal, work).
- social_media_profile. Social platform profiles.
- address. Addresses (simplified for people schema).
- contact_address. Person-address junction with type (home, work, billing).
- identification. ID documents (passport, driver's license, SSN, and similar).
- person_relationship. Relationships between people.
- employment. Employment history.
- person_source, address_source, phone_number_source, email_address_source. Import provenance via
source_entity_*plusimported_at(seePeopleSourceTypes). - contact_address_source, contact_phone_number_source, contact_email_address_source. Optional junction-level provenance (same shape).
Examples
Register services
// Connection string overload: registers IDbContextFactory<PeopleDbContext>
// AND a scoped PeopleDbContext via factory.CreateDbContext()
services.AddPeopleDbContext("Host=localhost;Database=lyo;Username=postgres;Password=...");
// DbContextOptionsBuilder overload: classic AddDbContext registration
services.AddPeopleDbContext(opts => opts.UseNpgsql(connectionString));
// Options-action overload (registers IDbContextFactory<PeopleDbContext> only)
services.AddPeopleDbContextFactory(opts => {
opts.ConnectionString = "...";
opts.EnableAutoMigrations = true;
});
// Pre-built options overload
services.AddPeopleDbContextFactory(new PostgresPeopleOptions { ConnectionString = "..." });
// IConfiguration binding (defaults to the "PostgresPeople" section)
services.AddPeopleDbContextFactoryFromConfiguration(configuration);
services.AddPeopleDbContextFactoryFromConfiguration(configuration, configSectionName: "MyPeopleSection");
Configuration section
{
"PostgresPeople": {
"ConnectionString": "Host=localhost;Database=lyo;Username=postgres;Password=...",
"EnableAutoMigrations": false
}
}
Migrations
export PEOPLE_CONNECTION_STRING="Host=localhost;Database=lyo_people;Username=postgres;Password=postgres"
dotnet ef migrations add MigrationName --project Core/People/Lyo.People.Postgres --context PeopleDbContext
Overview
- person. Core person data with flattened name, demographics, and JSON columns for preferences/citizenship/custom fields.
- phone_number. Base phone numbers (E.164).
- email_address. Base email addresses.
- contact_phone_number. Person-phone junction with type (mobile, home, work).
- contact_email_address. Person-email junction with type (personal, work).
- social_media_profile. Social platform profiles.
- address. Addresses (simplified for people schema).
- contact_address. Person-address junction with type (home, work, billing).
- identification. ID documents (passport, driver's license, SSN, and similar).
- person_relationship. Relationships between people.
- employment. Employment history.
- person_source, address_source, phone_number_source, email_address_source. Import provenance via
source_entity_*plusimported_at(seePeopleSourceTypes). - contact_address_source, contact_phone_number_source, contact_email_address_source. Optional junction-level provenance (same shape).
IPeopleStore
PostgresPeopleStore implements save/load with source rows:
services.AddPeopleDbContextFactoryFromConfiguration(configuration);
services.AddPostgresPeopleStore();
Registration
Everything ships as extension methods on IServiceCollection. No people-domain service is registered. Consumers resolve PeopleDbContext (scoped) or IDbContextFactory<PeopleDbContext> (singleton) and write their own repositories. The factory overloads also call services.AddPostgresMigrations<PeopleDbContext, PostgresPeopleOptions>() from Lyo.Postgres, which honours PostgresPeopleOptions.EnableAutoMigrations and stamps the __EFMigrationsHistory table inside the people schema.
Configuration section
The section name and schema are exposed as constants: PostgresPeopleOptions.SectionName ("PostgresPeople") and PostgresPeopleOptions.Schema ("people").
Migrations
For design-time operations (e.g. adding migrations), set the PEOPLE_CONNECTION_STRING environment variable:
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.EntityReference.Postgres(direct, lyo)Lyo.Exceptions(direct, lyo)Lyo.People.Models(direct, lyo)Lyo.Postgres(direct, lyo)Microsoft.EntityFrameworkCore10.0.5(direct, microsoft)Microsoft.EntityFrameworkCore.Design10.0.5(direct, microsoft)Microsoft.Extensions.Configuration.Binder10.0.5(direct, microsoft)Lyo.Common(transitive, lyo)Lyo.DateAndTime(transitive, lyo)Lyo.EntityReference.Models(transitive, lyo)Lyo.Geolocation.Models(transitive, lyo)Microsoft.EntityFrameworkCore.Relational10.0.5(transitive, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Hosting.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5(transitive, microsoft)Microsoft.Extensions.Options10.0.5(transitive, microsoft)Microsoft.Extensions.Options.ConfigurationExtensions10.0.5(transitive, microsoft)Npgsql.EntityFrameworkCore.PostgreSQL10.0.3(transitive, third-party)System.Memory4.6.3(transitive, microsoft, netstandard2.0)System.Text.Json10.0.5(transitive, microsoft, netstandard2.0)
| 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
- Lyo.EntityReference.Postgres (>= 1.0.6)
- Lyo.Exceptions (>= 1.0.6)
- Lyo.People.Models (>= 1.0.6)
- Lyo.Postgres (>= 1.0.6)
- Microsoft.EntityFrameworkCore (>= 10.0.5)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.