NHibernate SchemaExport字符串属性map char(n)而不是varchar(n)

时间:2015-10-29 13:19:41

标签: c# sql-server nhibernate fluent-nhibernate

我正在尝试使用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)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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