Hallo 
Dit is vast een domme vraag, ik zie vast iets over het hoofd.
Ik heb in een class een multithreraded get- en een save-functie. De Get parset info uit een bron, en koppelt de juiste entities uit de DB eraan, om daarna weergegeven te worden.
De save-functie die daarna aangeroepen wordt krijgt diezelfde elementen weer terug en gaat het daadwerkelijk opslaan. So far, so good. De logica erachter werkt allemaal, ik zit alleen met een klein EF-probleempje.
Eerst waren de functies static en maakte ik dus in een functie de DatabaseContext aan en gebruikte die. Dat ging mis met het opslaan, want dan was de entity in een andere context in gebruik, en dat gaf een fout. Mijn eerste gedachte is dan ook om het een normale class te maken, een property db aan te maken die gewoon alle functies gebruiken, en gewoon niet meer static. So far, so good. Probleem: bij de multithreaded functie maakt hij dan meerdere keren tegelijk van dezelfde entities in dezelfde context, en gaat het daar mis. (het is ook niet threadsafe volgens mij op deze manier)
Mijn vraag is dus: hoe zorg ik ervoor dat ik WEL multithreaded de entities kan koppelen, zonder dat het opslaan mis gaat (dubbele DBContext).
Dit is vast een domme vraag, ik zie vast iets over het hoofd.
Ik heb in een class een multithreraded get- en een save-functie. De Get parset info uit een bron, en koppelt de juiste entities uit de DB eraan, om daarna weergegeven te worden.
De save-functie die daarna aangeroepen wordt krijgt diezelfde elementen weer terug en gaat het daadwerkelijk opslaan. So far, so good. De logica erachter werkt allemaal, ik zit alleen met een klein EF-probleempje.
Eerst waren de functies static en maakte ik dus in een functie de DatabaseContext aan en gebruikte die. Dat ging mis met het opslaan, want dan was de entity in een andere context in gebruik, en dat gaf een fout. Mijn eerste gedachte is dan ook om het een normale class te maken, een property db aan te maken die gewoon alle functies gebruiken, en gewoon niet meer static. So far, so good. Probleem: bij de multithreaded functie maakt hij dan meerdere keren tegelijk van dezelfde entities in dezelfde context, en gaat het daar mis. (het is ook niet threadsafe volgens mij op deze manier)
Mijn vraag is dus: hoe zorg ik ervoor dat ik WEL multithreaded de entities kan koppelen, zonder dat het opslaan mis gaat (dubbele DBContext).
2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI