流畅的nhibernate映射IDictionary

发布于 2024-11-17 01:39:20 字数 1139 浏览 2 评论 0原文

在网上搜索后,我找到了一个可以完成大部分工作的映射:

在我的班级中,我有:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小鸟爱天空丶 2024-11-24 01:39:21
...Element("Value", x => x.Length(300))...
...Element("Value", x => x.Length(300))...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文