在网上搜索后,我发现了一个完成大部分工作的映射:
在我的班上,我有:
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文件映射它:
我得到了我期望的桌子。
关于如何流畅设定长度的任何想法?
答案 0 :(得分:0)
...Element("Value", x => x.Length(300))...