С помощью автоматического преобразования вы можете переопределить длину по умолчанию для текстовых полей, но она будет применяться ко всем текстовым полям.
Вы должны быть в состоянии объединить автоматическое сопоставление с явными сопоставлениями, созданными с помощью свободного API.
К счастью, это довольно простой класс для отображения (я предполагаю, что это часть иерархии таблиц на подклассы, поэтому я использую SubClassMap<>
вместо ClassMap<>
и не отображаю идентификатор ):
public class VirtualPageMap : SubClassMap<VirtualPage>
{
public VirtualPageMap()
{
Map(x => x.ParentId);
Map(x => x.PageName);
Map(x => x.Title);
Map(x => x.Body);
Map(x => x.ViewName);
Map(x => x.ViewData).Length(4001); // anything over 4000 is nvarchar(max)
}
}
На самом деле я никогда не использовал autoppings, поэтому я предполагаю, что это будет правильно подобрано, но точно не знаю.
Не забудьте добавить отображение в вашу конфигурацию.
Fluently.configure(
// blah blah blah
.Mappings(m =>
{
m.FluentMappings.AddFromAssemblyOf<VirtualPage>();
m.AutoMappings.Add( // blah blah blah
}