使用 Fluent NHibernate 进行非主键身份自动增量映射

发布于 2024-10-27 19:29:57 字数 325 浏览 1 评论 0原文

我需要使用 Fluent NHibernate 管理额外的自动增量列。

我的所有域类都使用分配的 Guid 作为 ID,但在特定实体中我需要一个额外的自动增量值。

我已经尝试了以下映射,该列在 SQL Server 中创建良好,但未设置身份规范。

        Id(x => x.OrderId).GeneratedBy.Assigned();

        Map(x => x.TicketNumber).ReadOnly().Generated.Always().Not.Nullable();

有什么帮助吗?

I need to manage an additionnal Auto Increment column using Fluent NHibernate.

All my domain classes use Assigned Guid as ID but in a particular entity i need an additionnal auto increment value.

I've tried the following mapping, the column is well created in SQL Server but the Identity Specification isn't set.

        Id(x => x.OrderId).GeneratedBy.Assigned();

        Map(x => x.TicketNumber).ReadOnly().Generated.Always().Not.Nullable();

Any help ?

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

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

发布评论

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

评论(3

月棠 2024-11-03 19:29:57

如果您仍然在寻找这个问题的答案,您也许可以在这篇文章中找到一些帮助:Fluent NHibernate 自动增量非键(Id)属性

在 Hibernate 中:

<property name="Foo" generated="always" update="false" insert="false" />

和 Fluent NHibernate:

Map(x => x.Foo).ReadOnly().Generated.Always();

以及可能的 Hibernate 论坛条目:https://forum.hibernate.org/viewtopic.php?f=1& t=954375

“生成意味着该值是由数据库生成的。因此,您需要一个触发器等来实际设置这些值。”

On the off-chance you are still after an answer for this question, you may be able to find some help in this SO post: fluent nhibernate auto increment non key (Id) property

In Hibernate:

<property name="Foo" generated="always" update="false" insert="false" />

And Fluent NHibernate:

Map(x => x.Foo).ReadOnly().Generated.Always();

and potentially this Hibernate forum entry: https://forum.hibernate.org/viewtopic.php?f=1&t=954375

"generated means that the value is being generated by the database. Thus you'd need a trigger, etc actually setting these values."

彻夜缠绵 2024-11-03 19:29:57
Map(x => x.TicketNumber).
   .CustomSqlType("INT IDENTITY(1,1)")
   .Not
   .Nullable()
   .ReadOnly()
   .Generated.Insert();
Map(x => x.TicketNumber).
   .CustomSqlType("INT IDENTITY(1,1)")
   .Not
   .Nullable()
   .ReadOnly()
   .Generated.Insert();
缺⑴份安定 2024-11-03 19:29:57

我假设您正在尝试使用 NHibernate 中内置的模式生成工具来执行此操作。不幸的是,使用这个工具,不可能完成您所要求的事情。它将为其设置身份标志的唯一列是主键列。因此,除非此列是主键的一部分,否则您将需要手动方法将其设置为标识列。

I'm assuming you're trying to use the built in schema generation tool in NHibernate to do this. Unfortunately with this tool, it is impossible to do what you are asking. The only columns it will set the Identity flag for, are the primary key columns. So unless this column is part of the primary key, you will need a manual method to set it to be an Identity column.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文