1

我终于让 CreateWizard 和 Profile 在我的系统上工作,但我无法理解为什么配置文件中的属性按原样存储在数据库中。例如,我添加到配置文件属性的所有内容都存储在名为PropertyNamesand的列PropertyValueString中。

我很难理解他们为什么这样做。我知道与propertynames对应propertyvaluestrings,但是为什么不将它们放入配置文件表中的单独列中?

如果我想将这些值存储在列中,Address或者不是将它们全部存储在一个字符串中,如果我更改用户,我AccountBalance如何保持更新? PropertyValueStringAccountBalance

此外,当我使用 CreateWizard 创建用户时,是否必须手动运行查询以将额外信息插入配置文件列(如果我将原始配置文件表扩展为具有更多列FirstName LastName等)?我在这里缺少什么吗?另外我听说人们将这些用于字符串的 xml 序列化,这样做有什么好处?谢谢

4

1 回答 1

0

它以这种方式存储,以便您可以轻松添加新属性,而无需向数据库添加新列。它使添加新内容变得非常容易,但代价是无法轻松查询数据库。

但是,您可以编写自己的配置文件提供程序,以您喜欢的任何方式存储此信息。或者使用现有的解决方案,例如Table Profile Provider这里是如何在 Asp.net 4 项目中使用它)

事实上,如果你用 Google 搜索asp.net profile providers,有很多关于如何编写自己的提供程序的示例。选择一个与你想做的事情相匹配的。

于 2011-02-02T04:59:55.350 回答