Creomobile.Data.EFCore
0.1.0
Creomobile.Data.EFCore.Timestamps
Additional DetailsSplit into two single-aspect packages: Creomobile.Data.EFCore.CamelCaseColumns (camelCase column naming) and Creomobile.Data.EFCore.Timestamps (CreatedAt/UpdatedAt maintenance and soft delete via DeletedAt). Reference whichever aspects you need; UseCreomobileDefaults() is replaced by UseCamelCaseColumnNames() and UseTimestamps().
dotnet add package Creomobile.Data.EFCore --version 0.1.0
NuGet\Install-Package Creomobile.Data.EFCore -Version 0.1.0
<PackageReference Include="Creomobile.Data.EFCore" Version="0.1.0" />
<PackageVersion Include="Creomobile.Data.EFCore" Version="0.1.0" />
<PackageReference Include="Creomobile.Data.EFCore" />
paket add Creomobile.Data.EFCore --version 0.1.0
#r "nuget: Creomobile.Data.EFCore, 0.1.0"
#:package Creomobile.Data.EFCore@0.1.0
#addin nuget:?package=Creomobile.Data.EFCore&version=0.1.0
#tool nuget:?package=Creomobile.Data.EFCore&version=0.1.0
Creomobile.Data.EFCore
Opinionated EF Core extensions for uniform database configuration. All
features are extension methods on DbContextOptionsBuilder: apply the whole
baseline with UseCreomobileDefaults() or opt in selectively.
Usage
services.AddDbContext<AppDbContext>(options => options
.UseNpgsql(connectionString)
.UseCreomobileDefaults());
public sealed class Customer : EntityBase<Guid>, ITimestamps
{
public string Name { get; set; } = null!;
}
UseCreomobileDefaults() applies the current recommended baseline —
UseCamelCaseColumnNames() plus UseTimestamps() — and may gain new
conventions in future versions; call the individual methods instead to opt
in selectively. EntityBase<TId> and the timestamp interfaces come from
Creomobile.Data.Abstractions, installed automatically as a dependency.
Features
UseCamelCaseColumnNames()
Renames table columns whose names were derived by convention to camelCase
(CreatedAt → createdAt). Names configured explicitly — via [Column] or
HasColumnName — are left untouched; table, key, index and constraint names
are not affected.
UseTimestamps(TimeProvider? timeProvider = null)
Automatically maintains the timestamp interfaces from
Creomobile.Data.Abstractions (ICreatedAt, IUpdatedAt, IDeletedAt —
each works independently, ITimestamps aggregates all three):
- Insert —
CreatedAtandUpdatedAtreceive the same UTC instant. - Update —
UpdatedAtis refreshed;CreatedAtis protected from accidental overwrites. - Delete of an
IDeletedAtentity becomes a soft delete: the row is kept withDeletedAtset, owned entities are retained; settingDeletedAtback tonullrestores the entity. Regular (non-owned) dependents still follow the normal delete cascade — implementIDeletedAton them or adjustDeleteBehaviorif they must survive the parent's soft delete. - A named query filter (
"SoftDelete") hides soft-deleted entities from queries; bypass it per query withIgnoreQueryFilters()or selectively withIgnoreQueryFilters([SoftDeleteQueryFilterConvention.FilterKey]). - All entities saved together share one instant; pass a
TimeProviderfor deterministic tests.
See the XML documentation of each extension method for exact semantics and known limitations.
Requirements
- .NET 10+
- EF Core 10
| 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
- Creomobile.Data.Abstractions (>= 0.1.0)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.10)
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 | 166 | 7/19/2026 |