2009-06-19 7 views
1

ASP.NET 2.0のメンバシップ、ロール、およびプロファイルは、猫の仲間です。ロールのAPIは、 GetAllUsersInRole( "MyNewsletterSubscriber")のような便利なメソッドをサポートしています。これは、 "MyNewsletterSubscriber"ロール内の人物の集合を返します。ASP.NETロールとプロファイル:カスタムプロファイルプロパティに一致するユーザーのコレクションを照会する最適な方法は?

私はカスタムASP.NETプロファイルプロパティを持つ人のコレクションを返す最良の方法は何かと思います。たとえば、IsNewsletter1SubscriptionUserSelectionTextOnlyという名前のカスタムプロファイルプロパティと、IsNewsletter1UserSelectionMobileOptimizedという別のカスタムプロファイルプロパティを作成することがあります。

どのようにして、GetAllUsersWithCustomProfileProperty( "IsNewsletter1SubscriptionUserSelectionTextOnly"、true)に類似したものを最も効率的にクエリできますか。

プロフィールについてのAPIは未開発のようです - 私はScott GuthrieがTech Ed 2006での講演で今後の作業について述べたと思いますが、何が行われたのか分かりません。

私はプロファイルを不適切に使用しようとしている可能性があります。このすべてのジャンクをまっすぐな役割として保存する方がよいでしょう。わからない。私はリスト管理のためにロールやプロファイルを使うというアイデアが気に入っていますが、それを管理する最もクリーンな方法はわかりません。

考え、考え、答え?ありがとう...

答えて

1

少なくとも、デフォルトのSQL実装では、プロファイルをクエリするのは恐らくバイナリのシリアル化フィールドをクエリしているため、すべてのクエリはデータベース内のすべての行を読み込み、デシリアライズする必要がありますバイナリは、答えを確認します。ですから、LINQでオブジェクトや何かを不正行為せずにやってください。あなたのDBAがあなたを撃ちます。

私のルールは、プロファイルでクエリを実行するとすぐに、通常の方法でクエリ可能なカスタムプロバイダを実装した方がよいということです。通常、これはドメインモデルの一部になります。

関連する問題