none
linq to sql -Fehlermeldunf beim ändern und löschen von Datensätzen RRS feed

  • Frage

  • Hi NG,

    ich bin's schon wieder ;).

    Beim Versuch, über LinqToSql Daten zu ändern oder zu löschen, bekomme ich folgende Fehlermeldung:

           Die Datentypen ntext und nvarchar sind im equal to-Operator inkompatibel.

     Ich versuche über db.SubmitChanges(); die Ändnderungen zu speichern.

    Der Feldtyp in der Tabelle ist nText (vorher varchar()).

    Wo liegt mein Fehler (Problem)?

    Gruß

    Andy

    Freitag, 20. Januar 2012 14:17

Antworten

  • Hallo Andy,

    zuerst: NText (und image) sind veraltet und sollten für neue Anwendungen nicht mehr verwendet werden,
    sondern NVARCHAR(MAX) (bzw. VARBINARY(MAX), siehe Verwenden von Datentypen mit umfangreichen Werten

    Zum zweiten: Linq To SQL überprüft beim Ändern und löschen die Spaltenwerte um Änderungen anderer Anwender
    zu erkennen. Dies ist aber für Datentypen mit umfangreichen Daten nicht möglich (weil beim bis 2GB zu aufwändig).

    Zum dritten: Entweder fügst Du Deiner Tabelle eine RowVersion (TimeStamp) Spalte hinzu und versiehst sie mit
    dem IsVersion-Attribut. Dann erfolgt der Vergleich über diese Spalte.
    Oder aber Du schliesst diese Spalten vom Vergleich aus in dem Du sie mit UpdateCheck-Attribut und Never versiehst.

    Zum letzten: Du empfehle auch mal einen Blick in die Dokumentation zu werfen,
    Trial 'n Error mag ja Spaß machen, kann aber auch dauern und frustrieren...

    Gruß Elmar

    Freitag, 20. Januar 2012 16:25
    Beantworter

Alle Antworten