Fluent nhibernate地图索引<;int,string>;?

Fluent nhibernate地图索引<;int,string>;?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,在网上搜索后,我发现了一个映射,它完成了大部分工作: 在我的班上,我有: public virtual IDictionary<int, string> _properties { get; set; } 但是,我需要“值”长于255,并将映射更改为: element => element.Column("Value").Type<string>().Length(500) element=>element.Column(“Value”).Type().Len

在网上搜索后,我发现了一个映射,它完成了大部分工作:

在我的班上,我有:

public virtual IDictionary<int, string> _properties { get; set; } 
但是,我需要“值”长于255,并将映射更改为:

element => element.Column("Value").Type<string>().Length(500)
element=>element.Column(“Value”).Type().Length(500)
对表的生成没有任何影响

如果我使用hbm文件映射它:

我得到了我想要的桌子


关于如何流畅地设置长度有什么想法吗?

如果没有,我将代码改为:
HasMany(x=>x.\u属性).AsMap(“PropertyID”).Element(“Value”,x=>x.length(400)).EntityName(“PropertyID”).KeyColumn(“ID”).ForeignKeyConstraintName(“FK\u deftoproperty”).Table(“Definition\u属性”).Not.LazyLoad().Cascade(),它仍然会生成一个值为NVARCHAR(255)的表,它在发布到这里之前为我工作过。我用的是FHN1.2.0.721.Hmmm。这和我用的版本是一样的。我甚至将字段名更改为Valuezzz,以确保它在创建表时使用了映射。这可能与我的设置有关。我仍在为这一点挠头。我查看了生成的hbm文件,其中的元素正确设置了长度:
但是生成的SQL仍然显示
值NVARCHAR(255)null
对不起,瓦希顿,我正在取消选中您的答案。我觉得这是Fluent nHibernate 1.2中的一个bug。AsMap将长度添加到字段的ElementPart而不是ColumnPart。我下载了源代码,并一直在调试器中运行它,观察发生了什么。我还没有弄清楚在代码中在哪里进行更改,但是如果我将length属性从元素移动到生成的hbm文件中的列,并在配置中使用该属性,那么SQL表将正确生成。
...Element("Value", x => x.Length(300))...
element => element.Column("Value").Type<string>().Length(500)
...Element("Value", x => x.Length(300))...