NHibernate – Маппинг NCLOB в String property

Как известно, ORACLE не может хранить более 2000 символов (4000 байт) в поле типа NVARCHAR2.

Для хранения текста большего размера необходимо использовать тип NCLOB (аналог nvarchar(max) в mssql).

Однако при маппинге такого поля в NHibernate возникает следующая ошибка:

«ORA-01461: can bind a LONG value only for insert into a LONG column»

Чтобы избежать этого необходимо установить в NHibernate тип колонки в «AnsiString» следующим образом:

<property name=«Contents« column=«CONTENTS« type=«AnsiString«/>

или с использованием маппинга через атрибуты

[Property(Column=«CONTENTS«, Type=«AnsiString«)]

Источник: http://geekswithblogs.net/wojan/archive/2008/11/10/126939.aspx

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *