关于nhibernate映射和guid的新手问题

发布于 2024-11-09 22:38:54 字数 268 浏览 4 评论 0原文

我的数据库有 MyId 列,它是 INT PK。 在映射文件中,我有一行

Id(x => x.Id, "MyId").GeneratedBy.GuidComb();

我知道这是两种不同的类型,guid 和 int,但我的问题是: 是否可以在我的数据库中将 MyId 保留为 INT,并在服务器级别动态将此记录转换为 GUID。例如,如果我想检索我的请求并将 int 转换为 guid。 这可能吗?

My database have column MyId which is INT PK.
In mapping file I have line

Id(x => x.Id, "MyId").GeneratedBy.GuidComb();

I know this are two different types, guid and int but my question is:
Is it possible to to keep MyId as INT in my database and dynamicly convert this record to GUID on server level. For example if I want to retreive fetch my request and convert int as guid.
Is this possible ?

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

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

发布评论

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

评论(1

拥抱影子 2024-11-16 22:38:54

您无法将 4 字节有符号整数转换为 16 字节二进制值。

您可以通过其他方式执行此操作,并使用 CHECKSUM 但你最终会遇到冲突(生日问题

不太确定为什么要更改密钥这边走。您是否有 GUID 作为集群 PK?

You can't convert a 4 byte signed integer into a 16 byte binary value.

You can do it the other ways and generate an int from a GUID using CHECKSUM but you will get collisions (birthday problem) eventually

Not quite sure why you want to change your key this way. Do you have GUID as the clustered PK?

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