[ spartak @ 05.11.2006. 18:33 ] @
Da li je neko imao iskustva sa sledecom situacijom?

Imam tipski DataSet, i Update par tabela u okviru njega treba da se obavi u okviru transakcije (SqlTransaction).

E sad, za instanciranje SqlTransaction objekta potreban je Connection objekat, onaj koji koriste TableAdapter-i koji se redom pozivaju da urade update svaki nad "svojom" tabelom. Recimo.

Ono sto mi fali je taj Connection kojem u tipskom dataset ne moze da se pristupi, ili ja barem ne umem. Nasao sam par primera gde ljudi ovo pitanje resavaju parcijalnim prosirivanjem tipskih TableAdapter klasa u okviru dataset, ali mi je malo cudna ta akrobatika.

Interesuje me ako neko ima iskustva sa System.Transactions, to jest da li TransactionScope moze da resi takvu stvar. To upravo eksperimentisem, ali me interesuju i vasa iskustva.
[ Oliver Klaćik @ 06.11.2006. 10:44 ] @
Kada sam ja imao taj problem jedino rešenje na koje sam naišao je bilo proširivanje TableAdapter klasa. Jeste malo čudno, ali radi.
[ aleksandarpopov @ 07.11.2006. 08:02 ] @
Hajde kad resis napisi kako si resio, i mene zanima!
Pozdrav
[ negyxo @ 10.11.2006. 08:55 ] @
Ovo sto Oliver pise nije nista cudno, jer drugo resenje i ne postoji, bar ne neko znacajno drugacije. Problem sa TableAdapterom je sto je neko u MS-om dizajn timu, odlucio da TableAdapter nasledjuje Component klasu i tu su zakucali sve u zid, sto po meni nije uopste u duhu objektnog orijentisanog programiranja. No dobro, i onako TableAdapter u sledecoj generaciji .NET frameworka ispada, pa tako mozda i nema smisla ga nesto znacajno unapredjivati.

A za ovo prosirivanje, pretopstavljam da je Oliver mislio na partial class-u tj. u novom cs file-u se definise ista ta klasa TableAdapter-a

Code:

namespace Yada.Yada.Yada
{
    partial class SomeTableAdapter
    {
             public SqlDataAdapter MyAdapter
        {
            get
            {
                this.Adapter;
            }
        }
    }
}