1

我正在重写一个网站,该网站必须从通过远程对象访问的第三方系统中提取其用户数据数据。为了标准化,我实现了一个自定义 MembershipProvider 用于身份验证和一个自定义 RoleProvider 用于授权,但我现在正在考虑处理配置文件数据的最佳方式。我看到的大多数建议都说尽可能使用 ProfileProvider 模型来处理配置文件数据,但它的设计似乎确实与我必须与之交互的系统不太吻合。

最大的症结在于 ProfileProvider 坚持认为 Profile 是作为单个实体操作的对象包。这对于基于 SQL 的提供程序可能很好,但调用远程对象是一项非常昂贵的操作。如果我调用 Profile.FirstName,GetPropertyValues 看起来像是发送了一个包含配置文件中定义的每个对象的 SettingsPropertyCollection。对于这个网站,这将包括多组地址信息、订单信息、考勤信息以及其他信息。一次提取所有这些信息对性能来说是致命的。看起来目标保存可以通过在每个 SettingsPropertyValue 对象上使用 IsDirty 标志来完成,但前提是它是原始类型......大多数属性都不是。

我是否正确理解这一点?如果 ProfileProvider 提供的只是“返回此配置文件”或“保存此配置文件”,那么延迟加载似乎是不可能的,并且性能损失太大。如果我放弃配置文件模型,那么处理所有配置文件数据的好方法是什么?我应该推出自己的会话支持机制吗?

4

0 回答 0