Attribut ändern

22/12/2008 - 09:08 von Patrick Denke | Report spam
Ich möchte gerne das TableAttribut einer Klasse zur Laufzeit àndern:

<Table(Name:="dbo.Tabellenname")> _
Partial Public Class Tabellenname


Wenn ich jedoch "dbo.Tabellenname" durch eine Variable vom Typ String
ersetze kommt die Fehlermeldung "Konstanter Ausdruck erforderlich"

Irgendeine Idee?

Gruß Patrick
 

Lesen sie die antworten

#1 Elmar Boye
22/12/2008 - 10:24 | Warnen spam
Hallo Patrick,

Patrick Denke schrieb:
Ich möchte gerne das TableAttribut einer Klasse zur Laufzeit àndern:

<Table(Name:="dbo.Tabellenname")> _
Partial Public Class Tabellenname
.

Wenn ich jedoch "dbo.Tabellenname" durch eine Variable vom Typ String
ersetze kommt die Fehlermeldung "Konstanter Ausdruck erforderlich"



Das funktioniert nicht über eine Variable, da der Wert in den
Metadaten der Assembly festgeschrieben wird.

Um das Attribut zur Laufzeit zu àndern bzw. einzufügen, braucht
etwas wie einen ICustomTypeDescriptor bzw. TypeDescriptorProvider:
<URL:http://msdn.microsoft.com/en-us/mag...4.aspx>

Allerdings setzt das voraus, dass der Code, der das Attribut
nutzt, entsprechend zugreift.
Ist das nicht der Fall, brauchst Du für jede Tabelle, auch
wenn sie identisch aufgebaut ist, eine eigene Klasse.

Aus Sicht des Datenbank-Designs sollte man auf duplizierte
Tabellen-Strukturen sowieso eher verzichten.

Gruß Elmar

Ähnliche fragen