NHibernate SchemaExport string 属性 映射 char(n) 而不是 varchar(n)

NHibernate SchemaExport string property map char(n) instead of varchar(n)

我正在尝试使用 SchemaExport 生成我的表格,如下所示:

_sessionFactory = Fluently.Configure()
                .Database(MsSqlConfiguration.MsSql2005
                .ConnectionString(connectionString))
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<MyClass>())
                .ExposeConfiguration(cfg => new SchemaExport(cfg).Execute(false, true,false))
                .BuildSessionFactory();

它有效,但它会创建由我的字符串属性映射为 nvarchar(n)varchar(n) 的列。我真的需要将它们创建为 char(n),因为我确信它们的长度是恒定的。

我试过以下方法:

Map(x => x.MyString, "COLUMN").CustomType("char").Length(7); //-> varchar(7)
Map(x => x.MyString, "COLUMN").CustomType("AnsiString").Length(7); //-> varchar(7)
Map(x => x.MyString, "COLUMN").Length(7); //-> nvarchar(7)
Map(x => x.MyString, "COLUMN").CustomSqlType("char").Length(7); //-> char(1)

有什么想法吗?

最后我自己解决了这个问题:

Map(x => x.MyString, "COLUMN").CustomSqlType("char(7)");