我终于让CreateWizard和Profile在我的系统上运行,但我无法理解为什么配置文件中的属性按照它的方式存储在数据库中。例如,我添加到个人资料中的所有内容都会存储到名为PropertyNames
和PropertyValueString
的列中。
我无法理解他们为什么这样做。我了解propertynames
与propertyvaluestrings
对应,但为什么这些不会放入配置文件表中的单独列?
如果我想将这些值存储在Address
或AccountBalance
等列中,而不是将其全部存储在一个字符串中,如果我更改了PropertyValueString
如何更新,该怎么办?用户AccountBalance
?
此外,当我使用CreateWizard创建用户时,是否必须手动运行查询以将额外信息插入到配置文件列中(如果我将原始配置文件表扩展为包含更多列,例如FirstName
{ {1}}等)?这里有什么我想念的吗?另外我听说人们将这些用于字符串的xml序列化,这样做有什么好处?感谢
答案 0 :(得分:0)
以这种方式存储,以便您可以轻松添加新属性,而无需向数据库添加新列。它使得添加新内容变得非常简单,但却无法轻松查询数据库。
但是,您可以编写自己的profile provider以任何您喜欢的方式存储此信息。或者使用现有的解决方案,例如Table Profile Provider(here's如何在Asp.net 4项目中使用它)
事实上,如果您使用Google asp.net profile providers
,那么有很多关于如何编写自己的提供商的示例。选择一个符合你想要的东西。