Когда когда-либо Вы устанавливаете строковое значение в быстром NHibernate это, alwasy устанавливает долины DB на Nvarchar (255), я должен сохранить довольно большую длинную строку, которая основана на вводах данных пользователем, и 255 непрактично.
Только для добавления это - проблема с автокартопостроителем, поскольку я использую быстрый NHibernate для создания базы данных.
Добавление этого соглашения установит длину по умолчанию для свойств строки равной 10000. Как отмечали другие, это будет столбец nvarchar (max).
public class StringColumnLengthConvention : IPropertyConvention, IPropertyConventionAcceptance
{
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(x => x.Type == typeof(string)).Expect(x => x.Length == 0);
}
public void Apply(IPropertyInstance instance)
{
instance.Length(10000);
}
}
Условные обозначения могут быть добавлены в конфигурацию автомата следующим образом:
Fluently.Configure()
.Mappings( m =>
m.AutoMappings.Add( AutoMap.AssemblyOf<Foo>()
.Conventions.Add<StringColumnLengthConvention >()))
Для получения дополнительной информации см. Условные обозначения в вики-странице Fluent NHibernate.
При установке длины больше 4001 будет сгенерирован NVarchar(MAX)...
.WithLengthOf(10000);
Более подробно см. здесь...
http://serialseb.blogspot.com/2009/01/fluent-nhibernate-and-nvarcharmax.html