TableAdapter

15/11/2008 - 12:51 von Bert Sachs | Report spam
Hallo NG

Wie kann man denn elegant Einfluss auf das Connection Objekt eines
TableAdapters nehmen? Ich müsste das Connection Objekt selbst
definieren/kontrollieren können (connectionstring entschlüsseln, timeout
setzen usw.). Man kann zwar im Designer die Sichtbarkeit der Connection
Eigenschaft auf public setzen, aber das stàndige manuelle Zuweisen halte ich
dann bei vielen TableAdaptern für inakzeptabel.

Eine weitere Lösung wàre z.B. eine Basisklasse, die eine Schnittstelle mit
der Connection Eigenschaft implementiert. Das Erstellen der TableAdapter
könnte man mittels Generics über eine Factory Methode realisieren, die einen
generic Typ entgegen nimmt, der wiederum vom Interface erbt. Die Methode
erstellt dann eine Instanz des generic Typs und setzt die Connection
Eigenschaft. Mir gefàllt diese Lösung aber trotzdem nicht so recht, vor
allem weil ja auch niemand daran gehindert, den TableAdapter ohne Factory
zu instanzieren.

Gibt es denn keine Möglichkeit, um irgendwo eine zentrale Logik für die
Connection zu erstellen, die dann jeder TableAdapter automatisch verwenden
kann? Da TableAdapter ja nicht zum Framework gehören, sondern von VS
generiert werden, könnte ich mir vorstellen, dass mit VS2008 neue
Möglichkeiten existieren (habe aber nichts gefunden).

Oder sollte man TableAdapter lieber ganz meiden und stattdessen das Entity
Framework verwenden bzw. kann man damit mein Problem lösen?

Gruß,
Bert
 

Lesen sie die antworten

#1 Peter Fleischer
15/11/2008 - 13:53 | Warnen spam
"Bert Sachs" schrieb im Newsbeitrag
news:

Wie kann man denn elegant Einfluss auf das Connection Objekt eines
TableAdapters nehmen? ...



Hi Bert,
man kann einfach einen anderen ConnectionString zuweisen, z.B. so:

Public Function StatusLoad(Optional ByVal central As Boolean = False) _
As Teilnehmer_DataSet.StatusDataTable
Dim ta As New Teil_DataSetTableAdapters.StatusTableAdapter
ta.Connection.ConnectionString = If(central, My.Settings.cnCentral, _
My.Settings.cnLocal)
Return ta.GetData
End Function

Viele Grüsse
Peter

Ähnliche fragen