2009-07-24 5 views
0

In einer SQL-Server-db habe ich eine Name-Spalte in der Abteilungs-Tabelle, mit nvchar (25) nicht null, einzigartig. Ich teste, um zu sehen, was passiert, wenn ich versuche, eine Abteilung mit einem größeren Namen zu speichern und eine "NHibernate.Exceptions.GenericADOException" zu erhalten, die klarstellt, dass "" String- oder Binärdaten abgeschnitten werden. "Bis jetzt, so in einer anderen Tabelle habe ich eine Description - Spalte in einer Projects - Tabelle, wobei nvchar (50) nicht null ist, aber nicht die eindeutige Einschränkung hat, ich habe es durch genau den gleichen Test gemacht (natürlich, um sicher zu stellen, dass ...) die Beschreibung ist größer als 50), aber keine Ausnahme wird geworfen ...db Zeichenfolge Länge Fehler und NHibernate

Ich bevorzuge die sehr klare Ausnahme, aber ich werde mich damit begnügen zu verstehen, was die Regeln sind.Außerdem wie spezifisch NHib Ausnahmen neigen dazu, über verschiedene sein db's Was fehlt mir?

Cheers,
Berryl

ANTWORT

meine Schuld! Ich verwendete eine Testvorrichtung, die SqlLite anstelle von SqlServer verwendete. Dies ist einer der Gründe, warum ich aufgehört habe, SqlLite zu verwenden (es muss einen Grund geben, warum so viele kluge Leute es zu lieben scheinen, aber es ist nutzlos für die Überprüfung von Nhibernate Mapping IMO).

Danke!

Antwort

0

Diese Fehler werden von MS SQL Server ausgegeben, nicht von nHibernate. Sie sollten versuchen, einige Abfragen direkt mithilfe von SQL Server Management Studio auszuführen, um festzustellen, was vor sich geht.

+0

Gibt es eine bestimmte Frage, die Sie daran haben, dies auszugleichen? – Berryl

2

wird das Verhalten durch die ANSI WARNINGS Option gesteuert:

wenn ein INSERT oder UPDATE versucht wird, auf einem Charakter, Unicode, oder binäre Spalte in dem die Länge eines neuen Wertes die maximale Größe überschreitet, der Spalte

Die Option ist eine Option pro Datenbank.

Verwandte Themen