Да, если задать свойство Length
, то у вас будут строковые столбцы, длина которых превышает максимальную длину по умолчанию.
У нас есть столбец типа NVARCHAR(MAX)
. Если мы не установим свойство length
, NHibernate не сможет установить строковое значение, если значение будет иметь длину более 4096 символов.
(В этом примере используется Mapping-By-Code, потому что мы находимся в 2017 году: -)
classMapper.Property(
tickerFeed => tickerFeed.StaticTickerText,
propertyMapper =>
{
propertyMapper.Column("StaticTickerText");
propertyMapper.Length(int.MaxValue);
}
);
Однако мы обнаружили, что можем достичь того же результата, используя IPropertyMapper.Type
, чтобы указать, что это большая строка.
classMapper.Property(
tickerFeed => tickerFeed.StaticTickerText,
propertyMapper =>
{
propertyMapper.Column("StaticTickerText");
propertyMapper.Type(NHibernateUtil.StringClob);
}
);
В итоге мы выбрали вариант propertyMapper.Type
, так как он более явный.