Мне нужно преобразовать Convert Int32 в Guids, и это то, что я придумал.
public static class IntExtensions
{
public static Guid ToGuid(this Int32 value)
{
if (value >= 0) // if value is positive
return new Guid(string.Format("00000000-0000-0000-0000-00{0:0000000000}", value));
else if (value > Int32.MinValue) // if value is negative
return new Guid(string.Format("00000000-0000-0000-0000-01{0:0000000000}", Math.Abs(value)));
else //if (value == Int32.MinValue)
return new Guid("00000000-0000-0000-0000-012147483648"); // Because Abs(-12147483648) generates a Qaru due to being > 12147483647 (Int32.Max)
}
}
Но это как-то уродливо. Кто-нибудь лучше знает?
Update:
Да, я знаю, что все это уродливо, но я теряю идеи. Проблема в. Я получаю данные и должен хранить их в таблице, которую я не могу изменить. Первичный ключ отправки данных - это Int и первичный ключ таблицы, который я должен хранить, это Guid. Проблема в том, что я должен понять, о каком объекте говорит отправитель, но может хранить его только как Guid.
Обновление 2:
Хорошо, я вижу, что мне нужно предоставить дополнительную информацию здесь. Я являюсь веб-сервисом, получающим данные, и должен передавать данные в интерфейс, который я также не могу контролировать. Поэтому я не могу моделировать полученные данные и базу данных (Interface), где я должен отправлять данные. Кроме того, мне нужно каким-то образом сопоставить эти две вещи таким образом, чтобы я как-то мог обновить элемент. Вздох