关于nhibernate映射和guid的新手问题
我的数据库有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法将 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?