Я использую ASP.NET SQL Membership Provider. Итак, есть таблица aspnet_Users
, в которой есть данные о каждом из моих пользователей. (На самом деле, таблица aspnet_Membership
содержит большую часть фактических данных).
Теперь я хочу сохранить некоторую информацию о пользователях в моей базе данных, поэтому я решил создать новую таблицу со столбцом UserId
(GUID) и отношением FK к aspnet_Users
. Однако потом я обнаружил, что не могу легко получить доступ к UserId
, поскольку он не предоставляется через API членства. (Я знаю, что могу получить к нему доступ через ProviderUserKey
, но похоже, что API абстрагируется от внутреннего UserID
в пользу UserName
, и я не хочу идти слишком далеко против зерна).
Итак, я подумал, что вместо этого я должен поместить столбец LoweredUserName
в мою таблицу и создать отношение FK к aspnet_Users
, используя это. Bzzzt. Опять неправильно, потому что хотя в aspnet_Users
есть уникальный индекс, который включает в себя LoweredUserName
, он также включает в себя ApplicationId
- поэтому для создания моих отношений с FK мне нужно иметь столбец ApplicationId
в моей таблице тоже.
Сначала я подумал: хорошо, я имею дело только с одним приложением, поэтому я просто добавлю такой столбец и присвоу ему значение по умолчанию. Затем я понял, что ApplicationId
- это GUID, поэтому было бы больно это делать. Не сложно точно, но пока я не разверну свою БД, я не могу предсказать, каким будет GUID.
Я чувствую, что что-то упустил, или поступаю неправильно. Что я должен делать?