Priladeni webu Ggdag jsem narazil na zajimavy problem. Totiz v nem pouzivam transakce a pouzival jsem v nem metody z tridy MSStoredProceduresI.
A kdyz jsem se snazil ziskat pocet radku v tabulce, tam mi to vyhodilo tuto chybu: “ExecuteNonQuery requires the command to have a transaction when the connection assigned to the command is in a pending local transaction.
The Transaction property of the command has not been initialized.” coz v prekladu znamena ze SqlCommand musi mit nastavenou transakci.
Zatim jeste nevim zda to nejak kontroluje na kontext nebo pokud v DB prave v tento cas probiha byt jen jedina transakce, tak musim u vsech prikazu ktere do ni behem teto doby posilat i transakci, treba i v null.
A ted k tomu jak jsem se nakonec rozhodl to vyresit. Moznosti jsem mel jako vzdy nekolik.
- Nepouzivat transakce – to se mi zdalo jako nejmene vhodne, protoze transakce ackoliv je zatim moc nepotrebuji(a i zde bych se bez nich obesel), tak to neznamena, ze v budoucnu je nevyuziju naplno.
- Pouzit transakce vsude – to se mi zdalo jako docela rozumne reseni, ale na druhou stranu bych musel skoro vsude uvadet null, a musel bych veskere volani metod MSStoredProceduresI upravit.
- Udelat 1 tridu pro transakce, s tim ze pro transakce by napriklad ty metody koncili “T” – Toto byl jeden vazny kandidat, ale nakonec jsem se rozhodl pro bod 4)
- Udelat 2 tridy a ve 2. mit metody, ktere vyuzivam v transakcich. – Tuto moznost jsem si vybral, nejtezsi pro me bylo vybrat nazev teto druhe tridy ale nakonec jsem si zvolil MSTSP(velmi casto pojmenovavam tridy akronymy)