流畅的nhibernate映射IDictionary?
在网上搜索后,我找到了一个可以完成大部分工作的映射:
在我的班级中,我有:
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 文件映射它:
我得到了我期望的桌子。
关于如何流畅设置长度有什么想法吗?
After searching around the web I found a mapping that gets most of the job done:
In my class I have:
public virtual IDictionary<int, string> _properties { get; set; }
And in the mapping:
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();
Which results in this table definition:
create table Definition_Property (
ID UNIQUEIDENTIFIER not null,
Value NVARCHAR(255) null,
PropertyID INT not null,
primary key (ID, PropertyID)
)
However I need the "Value" to be longer that 255 and changing the mapping to:
element => element.Column("Value").Type<string>().Length(500)
doesn't have any affect on the table generation.
If I map it using an hbm file:
I get the table I expected.
Any ideas on how to set the length fluently?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)