Konwertuj GUID na liczbę całkowitą iz powrotem


Mam więc aplikację innej firmy, z którą muszę wchodzić w interakcje, ta aplikacja wymaga identyfikatora użytkownika z tabeli użytkowników. problem polega na tym, że przechowuję moje identyfikatory użytkowników jako identyfikatory GUID, a aplikacja innej firmy akceptuje tylko liczby całkowite. więc myślę, że jeśli istnieje sposób na przekonwertowanie identyfikatora GUID na liczbę całkowitą, mogę go przekonwertować z powrotem (ponieważ otrzymuję wiadomości z ich serwera dotyczące identyfikatora użytkownika), to nie muszę zbytnio przekodowywać. jakieś pomysły?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Liczba całkowita wykorzystuje 32 bity, podczas gdy identyfikator GUID ma 128 bitów, więc nie ma możliwości przekonwertowania identyfikatora GUID na liczbę całkowitą bez utraty informacji, więc nie można go przekonwertować z powrotem.
EDYCJA: Być może mógłbyś przechowywać identyfikatory GUID w tabeli identyfikatorów GUID, w której każdemu przypisany jest unikalny identyfikator całkowity. W ten sposób możesz odzyskać identyfikator GUID, podając identyfikator w postaci liczby całkowitej.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Będziesz musiał zachować mapowanie swojego Guid na liczbę całkowitą innej firmy: albo nowe pole „int thirdPartyId” w istniejącej tabeli użytkowników, albo nową tabelę.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Będziesz potrzebował 128-bitowego typu liczby całkowitej, aby zawierał odpowiednik GUID. Możesz użyć metody GUID ToByteArray (), aby pobrać bajty i konstruktora, który pobiera tablicę bajtów w celu przywrócenia identyfikatora GUID.
Możesz również użyć metody GetHashCode (), aby uzyskać liczbę całkowitą, ale dwa różne identyfikatory GUID mogą mieć ten sam kod skrótu, ponieważ istnieje więcej możliwych identyfikatorów GUID niż 32-bitowe liczby całkowite.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Guid jest znacznie większy niż liczba całkowita i nie może pasować do liczby całkowitej.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dodaj i kolumnę z identyfikatorem całkowitym, która w zasadzie będzie

druga kolumna

ID i przekaż ten identyfikator kolumny do aplikacji.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Utwórz nową tabelę (MyUserMappings) z dwiema kolumnami
1) ThirdPartyUserID (INT, nie NULL, IDENTITY (1,1))
2) MyUserID (GUID, NOTNULL)
Wstaw wszystkie identyfikatory GUID z identyfikatora użytkownika do tej tabeli, wykonując następujące kroki
INSERT INTO MyUserMappings (MyUserID)
WYBIERZ MyGUIDUserID z MyUsers
Musisz także umieścić wyzwalacz w tabeli MyUsers, aby wstawić nowy wiersz do tabeli MyUsersMappings za każdym razem, gdy tabela MyUsers otrzyma nowy wiersz.
Teraz utwórz widok pokazujący wszystkie pola z tabeli MyUsers i pole ID użytkownika trzeciej strony z tabeli MyUsermappingsTable.
Teraz nie potrzebujesz żadnych zmian DAL w istniejącej aplikacji, a oryginalna tabela pozostanie niezmieniona. W ten sposób Twoja istniejąca aplikacja pozostanie taka, jaka jest. Nowy kod może wysyłać zapytania do widoku zamiast tabeli, aby zwracać identyfikator w postaci liczby całkowitej i wszystkie inne informacje o użytkowniku.
Owacja.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się