Geek tričko zdarma Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde

Diskuze: Dva dbcontexty

Aktivity (4)
Avatar
Luboš Hnědý:9. května 12:20

Zdravím mám jeden dotaz. Pracuji v .net core a používám ef. Mám napsaný svůj malý framework, kde používám context k db. Řekněme, že mám jinou aplikaci, kde mám context k db. A pokud potřebuji použít nějaké funkce z frameworku v aplikaci, tak musím registrovat i frameworkový context. Mě to v zásadě nedělá problém. Zajímalo by mě zda to nějak nerozbíjí nějakou logiku nebo něco jiného. Můžu si to udělat pomocí rozhraní, ale ptám se i dost ze zvědavosti. U čeho mám celkem strach a nebyl bych za to moc rád jsou transakce - https://docs.microsoft.com/…transactions. Tam se to totiž vztahuje k jednomu kontextu že? A nejde mi jenom o ten context, ale obecně zdaj e to správný přístup, protože si nejsem jistý
Příklad: Chci si pomocí frmaeworku uložit do DB obrázky a pomocí aplikace daný záznam, když tohle dám do transakce, tak to asi neprojde že?

Předem moc děkuji za info! či jakoukoli radu

Zkusil jsem: Zkoušel jsem hledat na stackoverflow a tady, ale nenašel jsem přesně to co potřebuju

Chci docílit: Správně navrhnuté funkčnosti

 
Odpovědět 9. května 12:20
Avatar
Odpovídá na Luboš Hnědý
Luboš Hnědý:10. května 17:26

Věděl by prosím někdo?

 
Nahoru Odpovědět 10. května 17:26
Avatar
JerryM
Člen
Avatar
JerryM:11. května 6:33

no ... tady neni žádný problém, EF normálně jako knihovnu nainstaluješ na cílový počítač. Ukládání velkých obrázků do databáze se dělá tak, že uložíš jen odkaz a obrázek dáš jinam, ale oficiálně třeba MS říká, že to de, ale nikdo to nedělá. Malé obrázky jako náhledy se do DB běžně ukláídají. Já jenom nechápu proč je tak atraktivní EF když stejně musíš definovat třídy parametrů... můžeš přeci použít přímo MS SQL a volat funkce SQL z programovacího jazyka...

 
Nahoru Odpovědět  -3 11. května 6:33
Avatar
xpoproci
Člen
Avatar
xpoproci:11. května 8:14

skús sa pozrieť na TransactionScope, ten podporuje aj vnorené transakcie, čo je ak som pochopil to čo chceš docieliť. Používa sa to asi takto

using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
  //your db access
  scope.Complete();
}

len pozor na verziu .net coru. odporúčam to používať iba s najnovším releasom, lebo v 2.1 to nefungovalo dobre.

Editováno 11. května 8:15
Nahoru Odpovědět 11. května 8:14
Motto
Avatar
Odpovídá na xpoproci
Luboš Hnědý:11. května 10:48

JerryM nevím zda si pochopil o co mi de? Já vím jak ukládat obrázky.
xpoproci to c osi poslal ty vypadá fakt dost zajímavě! Díky
Používám .net core 2.2, takže by to mělo být v pohodě. Takže můžu udělat něco jako

using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
  // Uložím obrázky
  framework.Save(); //UnityOfWork - uložím do dob
  // Uložím záznam
  projekt.Save();
  scope.Complete();
}

Koukám i do dokumentace a vypadá to fkt dobře díky :) A není to proti ničemu? mít v db dva ty contexty?

 
Nahoru Odpovědět 11. května 10:48
Avatar
xpoproci
Člen
Avatar
xpoproci:11. května 14:29

Minimálne za pokus nič nedáš. :-) daj potom vedieť ako to dopadlo.

Nahoru Odpovědět 11. května 14:29
Motto
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.