转换 GUID 在整数和背部

所以,我有一个我应该互动的第三方应用程序,这个应用程序需要是 userID 来自我的用户表。 问题是我存储了我的 userIDs 作为 GUIDs, 第三方应用程序只需要一个整数。 因此,我想如果有一种方法来转换 GUID 在整数中,我可以转换回来 /当我相对地从他们的服务器获取消息 userID/, 然后我不需要重新介入太多。 有任何想法吗?
已邀请:

风见雨下

赞同来自:

整数用途 32 位,而在 GUID - 这是 128 位,所以没有办法转换 GUID 对于没有丢失信息的整数,因此您无法将其转换为。

EDIT: 您可能会被存储 GUID 桌子 GUIDs, 每个人都被分配了一个唯一的整数 ID. 所以你可以得到 GUID 回来,给出整数 ID.

帅驴

赞同来自:

您需要保存您的比较。 Guid 使用整数的第3侧:一个新字段 "int thirdPartyId" 在现有用户表或新表中。

快网

赞同来自:

您需要一个128位整数类型来包含等价物 GUID. 您可以使用标识符方法 GUID 经过 ToByteArray//, 获取接受字节数组的字节和构造函数来恢复标识符 GUID.

您也可以使用该方法 GetHashCode// 对于一个整数,但两种不同 GUIDs 可能具有相同的哈希码,因为更有可能 GUID, 超过32位整数。

江南孤鹜

赞同来自:

Guid 不仅仅是一个整数,不能融入整数。

江南孤鹜

赞同来自:

添加和一个大多是的整数标识符列

第二栏

ID, 并通过此列 columnID 应用程序。

江南孤鹜

赞同来自:

创建一个新表 /MyUserMappings/ 有两列

1/ ThirdPartyUserID /INT, 但不是 NULL, IDENTITY/1,1//

2/ MyUserID /GUID, NOTNULL/

插入一切 GUID 来自你的 UserID 在此表中,按照以下操作

插入 MyUserMappings/MyUserID/
选择 MyGUIDUserID 的 MyUsers

您还需要在桌面上触发触发器。 MyUsers, 要在表中插入新字符串 MyUsersMappings 每次你的桌子 MyUsers 获取一个新的字符串。

现在创建一个显示表中表格的所有字段的视图。 MyUsers 和领域 ThirdParty UserID 从你的桌子上 MyUsermappingsTable.

现在,您不需要任何更改。 DAL 在现有应用程序中,您的源表将保持不变。 因此,您现有的申请将留下。 您的新代码可以请求视图而不是表返回整数 ID 以及所有用户信息。

杂散。

要回复问题请先登录注册