Мое веб-приложение (.net v4) использует nHibernate для сохранения значений обратно в (sql08 R2) БД. Операция UPDATE принимает форму и сохраняет содержимое обратно в БД. Материал работает правильно, пока длина одного из включенных полей не превысит пару сотен символов.
VS выбрасывает исключение ADO:
NHibernate.Exceptions.GenericADOException
был не обработан кодом пользователя
Сообщение = не удалось обновить:
[MyProject.Business.Entity.Order # 26718] [SQL:
ОБНОВЛЕНИЕ заказов SET orderDate =?,
shipmentTotal =?, всего =?,
firstName =?, lastName =?,
customerInstitution =?, телефон =?,
электронная почта =?, адрес =?, город =?,
state =?, zip =?, shippingFirstName
=?, shippingLastName =?, shippingAddress =?, shippingCity =?,
shippingState =?, shippingZip =?,
shippingPhone =?, paymentType =?,
generalComments =?, auditInfo =?,
storeComments =?, storeCommentsPriv =
?, taxExempt =?, initBy =?,
paidByCCNumber =?, idUser =?,
idAffiliate =? ГДЕ idOrder =?]
Источник = myProject.DataAccess
SqlString = ОБНОВЛЕНИЕ заказов SET SET OrderDate
=?, shipmentTotal =?, total =?, firstName =?, lastName =?,
customerInstitution =?, телефон =?,
электронная почта =?, адрес =?, город =?,
state =?, zip =?, shippingFirstName
=?, shippingLastName =?, shippingAddress =?, shippingCity =?,
shippingState =?, shippingZip =?,
shippingPhone =?, paymentType =?,
generalComments =?, auditInfo =?,
storeComments =?, storeCommentsPriv =
?, taxExempt =?, initBy =?,
paidByCCNumber =?, idUser =?,
idAffiliate =? ГДЕ idOrder =?
Веб-страница получает ошибку во время выполнения:
String or binary data would be truncated.
Очевидно, что это не самый короткий список полей, но, конечно, он не расширяет пределы емкости. Строка, которая вызывает ошибку, отправляется в поле varchar, изначально установленное в varchar (MAX) - я набрал его обратно в varchar (3000) - но, как я уже сказал - ошибки отбрасываются до того, как длина превышает 300 символов .
Я не вижу определения длины поля нигде на стороне вещей nHibernate (в классах VS), но не являюсь кодером nHibernate, я вроде вслепую разбираюсь в вещах. Сообщение «... будет усечено». Конечно, звучит так, будто это жалуется на дб, но VS сначала слышит об исключении ADO, поэтому я не уверен, что делать дальше.
ТНХ