ECore.Client.EMapCompat
26.2.8
dotnet add package ECore.Client.EMapCompat --version 26.2.8
NuGet\Install-Package ECore.Client.EMapCompat -Version 26.2.8
<PackageReference Include="ECore.Client.EMapCompat" Version="26.2.8" />
<PackageVersion Include="ECore.Client.EMapCompat" Version="26.2.8" />
<PackageReference Include="ECore.Client.EMapCompat" />
paket add ECore.Client.EMapCompat --version 26.2.8
#r "nuget: ECore.Client.EMapCompat, 26.2.8"
#:package ECore.Client.EMapCompat@26.2.8
#addin nuget:?package=ECore.Client.EMapCompat&version=26.2.8
#tool nuget:?package=ECore.Client.EMapCompat&version=26.2.8
ECore.Client.EMapCompat
Vrstva pro mechanickou migraci z EMapProxyContext (EMap.Proxy) na ECore.Client — zachovává
stejné názvy a tvar API, aby přechod EFabric služeb z EMap na ecore šel udělat jako „sed nad
voláním", ne přepis logiky. Staví na ECore.Client (net8.0/net10.0).
Instalace
dotnet add package ECore.Client.EMapCompat
Konfigurace
Bez DI, pro rychlou náhradu volajícího kódu (napodobuje new EMapContext(...)):
var context = EMapCompatContext.Create(urlApi: "https://acme.evolio.ws/api", token);
// Host mimo brandové domény (a mimo localhost/loopback) vyžaduje explicitního tenanta:
var context2 = EMapCompatContext.Create(
"https://api.interni-gateway.example/graf", token, tenant: "acme");
Pro DI (ECoreClientOptions + registrovaný HttpClient/ITokenProvider) použij veřejný
konstruktor EMapCompatContext(HttpClient, ECoreClientOptions, ITokenProvider) — AddECoreClient
(ECore.Client) registruje jen EcoreContext, ne EMapCompatContext.
Ukázky
Dotaz (stejné vlastnosti jako EMapProxyContext)
var pripady = await context.Pripady
.Where(f => f.Stav.Eq("A"))
.IncludeEMap(x => x.VyrizujeZamestnanec)
.ToListAsync();
Zápis přes EMapUnitOfWork
var uow = context.CreateUnitOfWork();
uow.Attach(pripad);
pripad.Stav = "B";
uow.Update(pripad);
var vysledek = await uow.SaveChangesAsync(); // NENÍ transakční, viz dokumentace
Volání procedury
// MujRadek = vlastní DTO s vlastnostmi podle sloupců výsledku
var radky = await context.Methods.ExecuteStorageProcedureAsync<MujRadek>(
"NazevSp", new { IdPripad = 42 }, ct);
Důležité rozdíly oproti EMapu
EMapUnitOfWorknení transakční.SaveChangesAsync()zapisuje sekvenčně (Insert→Update→Delete) a zastaví se na první chybě (userErrors). VracíSaveChangesResult { Provedeno, Selhalo, Neprovedeno, IsSuccess }—Provedenouž je v databázi, kompenzaci řeší volající. Opakované volání pouserErrorsje idempotentní; po transportní chybě (timeout) ale nejdřív ověřte čtením, jestli zápis neproběhl.- Dirty-checking je explicitní:
Attach(entity)zaznamená snapshot, teprveUpdate(entity)naplánuje zápis (odešle se jen rozdíl). BezUpdatese změna neodešle. - Unit of work pokrývá jen entity s plnou sadou mutací (dnes
Pripady,Subjekty,Udalosti,Tym,Role,Lhuty,MzdovaKategorie,EnumerationItem,SubjektyInstrukce); ostatní vyhodíNotSupportedExceptionještě před prvním zápisem. Insertposílá celou entitu — chybějící povinná pole shodíInvalidOperationExceptionpřed odesláním.- Token je povinný (API nemá anonymní volání). Tenant se odvodí z brandové subdomény
(
{tenant}.evolio.ws|cz|cloud|io,{tenant}.taxlio.ws,{tenant}.datiq.ws); jiný host vyžaduje parametrtenant. - Mapování:
IncludeEMap→Include,GetEntityByKey→ByKeyAsync,GetEntityBySysRowId→BySysRowIdAsync,Methods.XSp→ExecuteStorageProcedureAsync. OR filtr ecore nemá —In(...)nebo dva dotazy. Dynamický přístupcontext["Nazev"]ekvivalent nemá.
Nový kód pište rovnou nad EcoreContext z balíčku ECore.Client (doménové fasády
ctx.Pripady.Pripady…, mutace ctx.Pripady.Mutace…) — EMapCompat je jen přechodová vrstva.
Licence
Apache-2.0 — https://licenses.nuget.org/Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 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
- ECore.Client (>= 26.2.8)
-
net8.0
- ECore.Client (>= 26.2.8)
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 |
|---|---|---|
| 26.2.8 | 56 | 9/23/2026 |