Hallo, ich habe ein Problem, und zwar ist es folgendermaßen. Ich will mit Linq eine DB-Abfrage vornehmen. Dafür habe ich erstmal eine LinqToSql ContextKlasse angelegt und habe die Tabelle, aus der ich meine Daten beziehen möchte, in den Designer gezogen. Soweit so gut. Jetzt habe ich meine Abfrage geschrieben und bekomme immer folgende Ferhlermeldung: "Die Zeichenfolge darf nur genau ein Zeichen lang sein.". Die Abfrage sieht folgendermaßen aus: Dim query = From m In _MobileData.ZCDBANL_OSBM _
Select m.MUSSFELD
Die Spalte, die ich auslesen will, ist genau 1 Character lang (NVarchar(1)), und ist KEIN "not null" Feld, darf also null-Werte beinhalten und hat sie in diesem Fall auch. Deshalb wird der Fehler auch geworfen. Das Problem liegt irgendwie an der von VisualStudio selbst erstellten Klasse, die zu dem LinqToSql Context Designer gehört. Die von VS erstellte Property für die Spalte, die ich auslesen will sieht folgendermaßen aus:
Column(Storage:="_MUSSFELD", DbType:="NVarChar(1)") _
Public Property MUSSFELD() As System.Nullable(Of Char)
Get
Return Me._MUSSFELD
End Get
Set
If (Me._MUSSFELD.Equals(value) = false) Then
Me._MUSSFELD = value
End If
End Set
End Property
Wenn ich jetzt den Rückgabewert des Property von "As System.Nullable(Of Char)" auf "As String" ändere, kommt er mit den NULL-Werten Super klar. Nun meine Frage, warum kommt er mit den NULL-Werten aus der DB nicht klar, wenn der Rückgabetyp vom Typ System.Nullable(Of Char) ist? Muss ich jetzt alle Rückgabewerte in den Typ "String" ändern, oder gibt es eine andere Lösung bzw. mache ich allgemein etwas falsch? Viele Grüße André
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!