Как изменить столбец с помощью функциональности nhibernate SchemaUpdate

У меня есть модель сущности, которую я хочу отражать в базе данных каждый раз, когда я запускаю приложение, но без очистки данных, поэтому я использую SchemaUdpate с беглым методом сопоставления nhibernate способом

var config = Fluently.Configure().Database
(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString));
//here I add mappings , apply conventions, build configuration, etc...
//
new SchemaUpdate(configuBuild).Execute(doUpdate: true, script: true);

Таким образом, моя модель сущности обновляется правильно почти все время. Проблема в том, что когда я изменяю определение свойства, скажем, у меня было такое свойство

 [CustomSqlType("nvarchar(400)")]
 public virtual string Name { get; set; }

CustomSqlType , это просто атрибут, который будет применяться по определенному соглашению при загрузке сопоставлений. В этом случае свойство Name будет создано как поле nvarchar (400) . Но если в будущем я изменю определение на это

 [CustomSqlType("nvarchar(500)")]
 public virtual string Name { get; set; }

, то будет сгенерирован правильный файл hbm.xml (правильный означает nvarchar (500)), но столбец в базе данных не обновляется, хотя такое изменение допустимо с точки зрения базы данных. Можно ли изменить (создать сценарий изменения) существующий столбец с новым ограничением длины / точности / допускающего значения NULL, используя SchemaUpdate ?

11
задан tchrikch 2 November 2011 в 14:14
поделиться