Semantica.Lib.Storage
8.1.0-beta
dotnet add package Semantica.Lib.Storage --version 8.1.0-beta
NuGet\Install-Package Semantica.Lib.Storage -Version 8.1.0-beta
<PackageReference Include="Semantica.Lib.Storage" Version="8.1.0-beta" />
<PackageVersion Include="Semantica.Lib.Storage" Version="8.1.0-beta" />
<PackageReference Include="Semantica.Lib.Storage" />
paket add Semantica.Lib.Storage --version 8.1.0-beta
#r "nuget: Semantica.Lib.Storage, 8.1.0-beta"
#:package Semantica.Lib.Storage@8.1.0-beta
#addin nuget:?package=Semantica.Lib.Storage&version=8.1.0-beta&prerelease
#tool nuget:?package=Semantica.Lib.Storage&version=8.1.0-beta&prerelease
Semantica.Lib.Storage
This package is part of the design packages of Semantica.Lib.
Summary
Provides interfaces and types for usage with your storables, as well as abstractions used to build on the patterns included in Semantica.Lib.Domain and base classes from Semantica.Lib.Domain.Data. This package is independent of those packages, so can be included in a storage layer that can be completely independent of your domain layer. The abstractions are also independent of a specific ORM-framework, but were designed with EntityFramework in mind.
Implementations for the abstractions provided in this package are provided in the Semantica.Lib.Storage.Data and Semantica.Lib.Storage.EntityFramework packages.
Dependencies
- Semantica.Lib.Checks
- Semantica.Lib.Core
- Semantica.Lib.Extensions
- Semantica.Lib.Linq
- Semantica.Lib.Ordering
- Semantica.Lib.Patterns
Documentation generated from the XMLDoc:
<a name='assembly'></a>
Lib.Storage
Contents
- CharEnumConverter
- IAggregateDataStore`2
- ICompositeAggregateDataStore`2
- IDataStore`2
- IIdentity`1
- IKeyConverter`2
- KeyConverter`2
<a name='T-Semantica-Storage-CharEnums-CharEnumConverter'></a>
CharEnumConverter type
Namespace
Semantica.Storage.CharEnums
Summary
Provides static methods that help with converting strings or chars into enums that are of type ushort and vice versa.
These "CharEnums" can be defined using char literals, can be mapped onto char(1) database columns, and allow for more readable and less error prone storing of enums in a database, without sacrificing performance (which can be particularly important for keys or indices).
enum MyCharEnum : ushort
{
Apples = 'A',
Oranges = 'O',
Pears = 'P'
}
<a name='T-Semantica-Storage-DataStores-IAggregateDataStore`2'></a>
IAggregateDataStore`2 type
Namespace
Semantica.Storage.DataStores
Summary
Defines methods for retreiving TStorable
s using an aggregating (typically foreign) key.
Only use this interface when TAggregateKey
is a simple key
(), otherwise use ICompositeAggregateDataStore`2.
A standard implementation using entity framework is provided in the Lib.Storage.EntityFramework package.
Generic Types
Name | Description |
---|---|
TStorable | Type of the storable |
TAggregateKey | Type of the key that aggregates TStorable |
<a name='T-Semantica-Storage-DataStores-ICompositeAggregateDataStore`2'></a>
ICompositeAggregateDataStore`2 type
Namespace
Semantica.Storage.DataStores
Summary
Defines methods for retreiving TStorable
s using an aggregating (typically foreign) key.
If TAggregateKey
is a simple key (), you can
use IAggregateDataStore`2 for additional functionality.
A standard implementation using entity framework is provided in the Lib.Storage.EntityFramework package.
Generic Types
Name | Description |
---|---|
TStorable | Type of the storable |
TAggregateKey | Type of the key that aggregates TStorable |
<a name='T-Semantica-Storage-DataStores-IDataStore`2'></a>
IDataStore`2 type
Namespace
Semantica.Storage.DataStores
Summary
Simple datastore
Generic Types
Name | Description |
---|---|
TStorable | |
TKey |
<a name='T-Semantica-Storage-IIdentity`1'></a>
IIdentity`1 type
Namespace
Semantica.Storage
Summary
Generic Types
Name | Description |
---|---|
TId |
<a name='P-Semantica-Storage-IIdentity`1-Id'></a>
Id property
Summary
Primary key of the entity
<a name='T-Semantica-Storage-IKeyConverter`2'></a>
IKeyConverter`2 type
Namespace
Semantica.Storage
Summary
Generic converter used by the base repository to convert keys into storables and back.
Generic Types
Name | Description |
---|---|
TStorable | Storable type |
TKey | Primary key type for entity |
<a name='M-Semantica-Storage-IKeyConverter2-ToBlankStorable-
1-'></a>
ToBlankStorable() method
Summary
Creates an empty storable with only key properties set. Used for removing entities.
Parameters
This method has no parameters.
<a name='M-Semantica-Storage-IKeyConverter2-ToKey-
0-'></a>
ToKey() method
Summary
Makes a key from a storable.
Parameters
This method has no parameters.
<a name='T-Semantica-Storage-KeyConverter`2'></a>
KeyConverter`2 type
Namespace
Semantica.Storage
Summary
Generic implementation of IKeyConverter`2 that can be instantiated with delegate functions to provide the conversions.
Generic Types
Name | Description |
---|---|
TStorable | Type of the storable class. |
TKey | Primary key type for the entity or value object in domain. |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. 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 was computed. 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 was computed. 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. |
-
net6.0
- Semantica.Lib.Checks (>= 8.1.0)
- Semantica.Lib.Core (>= 8.1.0)
- Semantica.Lib.Extensions (>= 8.1.0)
- Semantica.Lib.Linq (>= 8.1.0)
- Semantica.Lib.Order (>= 8.1.0)
- Semantica.Lib.Patterns (>= 8.1.0)
-
net7.0
- Semantica.Lib.Checks (>= 8.1.0)
- Semantica.Lib.Core (>= 8.1.0)
- Semantica.Lib.Extensions (>= 8.1.0)
- Semantica.Lib.Linq (>= 8.1.0)
- Semantica.Lib.Order (>= 8.1.0)
- Semantica.Lib.Patterns (>= 8.1.0)
-
net8.0
- Semantica.Lib.Checks (>= 8.1.0)
- Semantica.Lib.Core (>= 8.1.0)
- Semantica.Lib.Extensions (>= 8.1.0)
- Semantica.Lib.Linq (>= 8.1.0)
- Semantica.Lib.Order (>= 8.1.0)
- Semantica.Lib.Patterns (>= 8.1.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Semantica.Lib.Storage:
Package | Downloads |
---|---|
Semantica.Lib.Domain.Data
Provides (base class) implementations of the repository interfaces from Sematica.Lib.Domain. These implementations generally assume a strict separation between the domain-level entity models and storable counterparts used in the storage (persistence) layer. For this, the repository base classes are dependent on injected implementations of the converter interfaces also provided in this package. The repository base is also dependent on an injected IDataStore for the entity's storage type, and a IPropertyAnalyser which is used to identify immutable properties on the storable model. Those properties will be ignored when doing replaces/updates using the default implementations. The package provides a default implementation for this interface that utilizes the ImmutableAttribute from the Semantica.Lib.Storage.Attributes namespace. The repository base classes will implement all standard IRepository members, while additional required custom members can be easily added. |
|
Semantica.Lib.Storage.Data
Provides implementations for the abstractions provided by Semantica.Lib.Storage that are independent of EntityFramework. At the moment, that's only the StorageCache implementation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
8.1.0-beta | 89 | 5/30/2025 |
8.0.7-beta | 76 | 9/6/2024 |
8.0.6-beta | 690 | 7/10/2024 |
8.0.5-beta | 123 | 7/4/2024 |
8.0.4-beta | 92 | 7/2/2024 |
8.0.3-beta | 74 | 6/14/2024 |
8.0.2-beta | 140 | 6/4/2024 |
8.0.1-beta | 72 | 6/4/2024 |
8.0.0-beta | 73 | 6/4/2024 |
6.6.1-beta | 211 | 4/5/2024 |
6.6.0-beta | 243 | 3/5/2024 |
6.5.5-alpha2 | 85 | 3/4/2024 |
6.5.4-beta | 109 | 2/29/2024 |
6.5.3-beta | 525 | 10/5/2023 |
6.5.2-beta | 101 | 10/5/2023 |
6.5.1-beta | 155 | 9/29/2023 |
6.5.0-beta | 116 | 9/22/2023 |
6.4.0-beta | 437 | 7/11/2023 |
6.3.0-beta | 137 | 6/15/2023 |
6.2.5-beta | 209 | 3/14/2023 |
6.2.4-beta | 588 | 10/12/2022 |
6.2.3-beta | 277 | 9/1/2022 |
6.2.1-beta | 182 | 8/25/2022 |