流利的nhibernate映射IDictionary <int,string =“”>?</int,>

时间:2011-06-23 21:44:03

标签: nhibernate fluent-nhibernate

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

在我的班上,我有:

public virtual IDictionary<int, string> _properties { get; set; } 

在映射中:

HasMany(x => x._properties)
     .AsMap<string>(index => index.Column("PropertyID").Type<int>(),
                    element => element.Column("Value").Type<string>())
                   .KeyColumn("ID")
                   .ForeignKeyConstraintName("FK_DeftoProperties")
                   .Table("Definition_Property")
                   .Not.LazyLoad()
                   .Access.Property()
                .Cascade.All();

这导致此表定义:

create table Definition_Property (
        ID UNIQUEIDENTIFIER not null,
       Value NVARCHAR(255) null,
       PropertyID INT not null,
       primary key (ID, PropertyID)
    )

但是,我需要将“Value”设置为长于255并将映射更改为:

element => element.Column("Value").Type<string>().Length(500)

对表格生成没有任何影响。

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

                                         

我得到了我期望的桌子。

关于如何流畅设定长度的任何想法?

1 个答案:

答案 0 :(得分:0)

...Element("Value", x => x.Length(300))...