0

メイト、ユーザープロファイルを更新するために、ユーザーが1つの詳細だけを更新したい場合は、コントローラーで電子メールを送信するとします。

try
        {
            MembershipUser user = Membership.GetUser(model.UserName);

            user.Email = model.Email;
            user.IsApproved = model.Active;
            user.ChangePassword(model.Password, model.ConfirmPassword);

            string password = user.GetPassword();
            user.ChangePasswordQuestionAndAnswer(password, model.SecretQuestion, model.SecretQuestionPassword);

            Membership.UpdateUser(user);

            return Content("Usuário Atualizado com Sucesso!");

        }

問題は、他の値が設定されているかどうかを確認するために、いくつかのIf条件を設定する必要があるかどうかです。フィールドが無効になっていないかどうかを確認して、必要な列のみを変更できるようにするか、すべてが揃っているので完全な更新を実行してもかまいません。データベースから返された値とその値を持つフィールド?

パフォーマンスの良いソリューションが必要ですが、すべてのフィールドをチェックするか、完全な更新を実行する方がよいかわかりません。

手伝っていただけませんか?ありがとう

4

2 に答える 2

2

このようなユースケースでのパフォーマンスについて考えるのは時間の無駄です。ユーザーはメールを大量に更新しますか?たとえば、1秒間に1000回ですか?これは、ほとんど使用されない機能の1つです。

良いデザインについて考えてください。意味のあるメソッドを作成します。パフォーマンスの問題がある場合にのみ、後で最適化してください。

于 2012-11-23T15:18:30.873 に答える
0

メールのみを更新する場合は、メールのみを設定してください。他のすべてのフィールドはデータベースからロードされるため、値が保持されます。これは、舞台裏で何らかのORMを使用しているMing​​に割り当てられたパフォーマンスにも適しています。ORMによって生成されたSQLは簡潔になるためです。

于 2012-11-23T14:57:58.980 に答える