Для чего нужны поля PropertyValuesString и PropertyValuesBinary в таблице aspnet_Profiles? - PullRequest
4 голосов
/ 23 декабря 2009

Я полагал, что PropertyValuesString был для части значения того, что обычно является парой ключ-значение этих типов объектов. Но тогда, когда появляется поле PropertyValuesBinary, если вы уже поместили значение в PropertyValuesString?

Оба поля не обнуляются, поэтому мне нужно что-то добавить в каждое. В чем разница между этими двумя и что я должен положить в них?

Кроме того, мне было интересно, почему это множественное число - PropertyValue s - опять не имеет смысла для всей пары ключ-значение, я подумал, что одно свойство должно иметь одно значение.

1 Ответ

8 голосов
/ 23 декабря 2009

SqlProfileProvider сохраняет свойства профиля в трех полях таблицы aspnet_Profile: PropertyNames, PropertyValuesString и PropertyValuesBinary. Ниже приведен краткий обзор того, что хранится в каждом поле: * PropertyNames содержит строковое значение, содержащее информацию о значениях свойств профиля, присутствующих в полях PropertyValuesString и PropertyValuesBinary. Строка содержит список элементов, разделенных двоеточиями; каждый элемент обозначает одно значение свойства и кодируется в следующем формате: Имя: B | S: StartPos: длина

Имя - это имя значения свойства. Второй параметр, который является B (для «двоичного») или S (для «строкового»), указывает, хранится ли соответствующее значение свойства в PropertyValuesString поле (S) или PropertyValuesBinary поле (B). StartPos и ​​Length указывают начальную позицию (на основе 0) соответствующего значения свойства в этих полях и длину данных соответственно. Длина -1 указывает, что свойство является ссылочным типом и что его значение равно нулю. * PropertyValuesString сохраняет значения свойств профиля в виде строк. Сюда входят значения свойств, сериализованные XML-сериализатором .NET Framework, и значения свойств, сериализованные с использованием преобразователей строковых типов. Значения «S» в поле PropertyNames содержат смещения и длины, необходимые для разложения PropertyValuesString на отдельные значения свойств. * PropertyValuesBinary хранит значения свойств профиля в двоичном формате, то есть свойства профиля, которые были сериализованы с использованием двоичного сериализатора .NET Framework. Значения «B» в поле PropertyNames содержат смещения и длины, необходимые для разложения PropertyValuesBinary на отдельные значения свойств.

Обратите внимание, что поставщики профилей не обязаны сохранять данные в этом или любом другом формате. Формат, в котором хранятся данные профиля, оставляется на усмотрение лица или лиц, пишущих поставщику.

оригинальная ссылка для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/aa478953.aspx надеюсь, это поможет.

...