Q1
本书建议在我们注册新的 SqlProfileProvider 之前,我们应该使用<clear>
元素删除任何现有的配置文件提供程序。但是:
A)为什么我们必须使用<clear>
代替<remove>
?
B)我假设root web.config 或 machine.config 没有注册(默认情况下)任何配置文件提供程序,因此使用<clear>
元素没有必要吗?
Q2 我假设为什么每个配置文件属性在数据库表中没有相应的列(而所有属性都存储在单个字段中)是由于每次我们添加和删除配置文件属性的事实,我们还需要更改表架构?
感谢名单
答案 0 :(得分:2)
实际上,默认情况下会在AspNetSqlProfileProvider
添加System.Web.Profile.SqlProfileProvider
(machine.config
类型)。查看您的C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
目录(或其他位置)。但是,它未在那里注册为默认提供程序。因此,如果您对default settings感到满意,则可以使用以下配置:
<profile enabled="true" defaultProvider="AspNetSqlProfileProvider" />
如果您想使用自定义提供程序,通常最好清除所有现有提供程序(尽管不是必需的)并命名另一个默认提供程序。
不使用remove
的原因是它需要name
属性,您可能不知道。使用clear
删除所有以前注册的配置文件提供程序,使用remove
只删除一个名称。
关于Q2你是对的。使用的数据库方案必须足够通用,以容纳许多不同的属性(和属性类型)。
答案 1 :(得分:1)