У меня есть NVARCHAR столбца в базе данных SQL Server 2005 (2000), и отобразили это в NHibernate, как:Автоматически усечения строки в NHibernate/SQL Server
<property name="Query" column="`Query`" type="String" length="2000" not-null="false"/>
Класс DTO только представляет свойство строки:
public virtual string Query { get; set; }
Если я установить запрос в строку> 2000 символов я получаю исключение от сервера SQL к эффекту:
"Строковые или двоичные данные будут усечены. Заявление было прекращено.»
То, что я хочу, чтобы это усечение просто произойдет автоматически и незаметно. Я мог бы переопределить виртуальную собственность и заставить усечение на наборе свойств, но чувствует, что должно быть способом чтобы получить такое поведение по умолчанию, либо с помощью отображения NHibernate или даже в качестве параметра SQL-сервера.
я упускаю что-нибудь ... Я не хочу, чтобы изменить схему дб, чтобы более длинные строки.