После поиска по сети я нашел отображение, которое выполняет большую часть работы:
В моем классе у меня есть:
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)
)
Однако мне нужно, чтобы "Значение" было длиннее 255 и изменило отображение на:
element => element.Column("Value").Type<string>().Length(500)
не делает 'не может повлиять на генерацию таблицы.
Если я сопоставлю его с использованием файла hbm:
Я получу ожидаемую таблицу.
Любые идеи о том, как свободно установить длину?