在 Fluent Nhibernate 中设置复合键属性的类型和长度

发布于 2024-09-27 06:48:36 字数 874 浏览 2 评论 0原文

在 hbm 映射中,我可以

<composite-id>
   [..]
   <key-property name="someStringProperty" 
                 column="somefield" 
                 type="AnsiString" 
                 lenght="8"/>
</composite-id>

如何在 Fluent 中做到这一点(设置类型和长度)?

编辑:
我将其发布在 support. Fluentnhibernate .org。我进行了一些修改以支持将类型设置为例如 AnsiString 。

编辑2:
今天,Paul Batum 在他的开发分支中添加了对文本类型和长度的支持。 (有关更改,请参阅 github。)
这使得可以写

CompositeId()
  .KeyProperty(
       p => p.SomeProp, 
       k => k.ColumnName("someField").Type("AnsiString").Length(8))

In hbm mappings I can

<composite-id>
   [..]
   <key-property name="someStringProperty" 
                 column="somefield" 
                 type="AnsiString" 
                 lenght="8"/>
</composite-id>

How do I do that (setting type and length) in Fluent?

Edit:
I posted this on support.fluentnhibernate.org. I included some modifications to support setting the type to e.g. AnsiString there.

Edit 2:
Today Paul Batum has added support for a textual type and a length in his dev-branch. (See github on the changes.)
This makes it possible to write

CompositeId()
  .KeyProperty(
       p => p.SomeProp, 
       k => k.ColumnName("someField").Type("AnsiString").Length(8))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

归属感 2024-10-04 06:48:36

看来你不能。您最多只能...

CompositeId()
        .KeyProperty(x => x.Id1, "ID1")
        .KeyProperty(x => x.Id2, "ID2");

没有类型或长度选项。

但在1.1版本中似乎有可能

CompositeId() 
            .KeyProperty(x => x.Id1) 
            .KeyProperty(x => x.Id2, kp => kp 
                .ColumnName("ID2") 
                .Type(typeof(string)));

It seems like you can't. You can only go as far as ...

CompositeId()
        .KeyProperty(x => x.Id1, "ID1")
        .KeyProperty(x => x.Id2, "ID2");

There is no option for type or length.

But in version 1.1 there seems to be a possibility

CompositeId() 
            .KeyProperty(x => x.Id1) 
            .KeyProperty(x => x.Id2, kp => kp 
                .ColumnName("ID2") 
                .Type(typeof(string)));
蓝眸 2024-10-04 06:48:36

我更新到 1.2 并且能够将键属性的类型设置为 AnsiString

            CompositeId()
            .KeyReference(x => x.ViewDto, "type_id")
            .KeyProperty(x => x.FieldName, p =>
                                               {
                                                   p.ColumnName("field_name");
                                                   p.Type("AnsiString");
                                               });

I updated to 1.2 and am able to set the type of a key property to AnsiString

            CompositeId()
            .KeyReference(x => x.ViewDto, "type_id")
            .KeyProperty(x => x.FieldName, p =>
                                               {
                                                   p.ColumnName("field_name");
                                                   p.Type("AnsiString");
                                               });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文