0

MVCでユーザーの電子メールを取得するダーティコードを作成しました。ご覧のとおり、私はlinqクエリを使用してユーザーデータベースから情報を取得しています。

 List<string> emails = new List<string> {ConstantHelper.AdminEmail, ConstantHelper.OwnerEmail};
 DataContext mDataContext = new DataContext();
 User user = 
      (from allUsers in mDataContext.Users.Where(u => u.UserName == User.Identity.Name) 
        select allUsers).FirstOrDefault();
 string userEmail =
      (from allMemberships in mDataContext.Memberships.Where(u => user != null && u.UserId == user.UserId)
        select allMemberships.Email).FirstOrDefault();
 if(userEmail == null)
 {
     return false;
 }
 emails.Add(userEmail);

 //TODO: senda email

(現在ログインしているユーザーの)ユーザーの電子メールを取得するための他の「より短い」またはよりクリーンな方法があるかどうか知りたいですか?

私はこれをグーグルで検索し、このコードに関するいくつかの提案を見つけましたが、それがうまくいくことはありませんでした。

MembershipUser u = Membership.GetUser(username);

私のコードは機能します、それは私がこれでよりクリーンなコードを持っているということだけです、どんな提案も大歓迎です:)

4

1 に答える 1

1

MembershipUser u = Membership.GetUser(username);それを達成するためのはるかに優れた、より短い方法です。GetUserやその他のメソッドの動作をニーズに合わせてカスタマイズできるようにするには、デフォルトのメンバーシッププロバイダーを置き換えるカスタムメンバーシッププロバイダーを作成する必要があります。

于 2012-07-26T15:43:33.540 に答える