2012-01-11 13 views
0

私はブール戻り値では、deleteuser機能を持っています。私のORMはEntity Frameworkです。以下に見られるように、私は関数の終わりに真の値を強制しますが、これはかなり良くありません。 SaveChangesが自分の仕事をしている(ユーザーを削除している)ときのみ、この返り値(bool)をどのように置くことができますか?たぶん、試して...キャッチ?もう一つの解決策?私のリポジトリに私の削除機能を改善

public bool DeleteUser(string username) 
    { 
     User user = m_context.Users.Where(u => u.UserName == username).FirstOrDefault(); 
     m_context.Users.Remove(user); 
     m_context.SaveChanges(); 
     return true; 
    } 

ありがとう。

答えて

0

ください... catchは動作するはずです:

public bool DeleteUser(string username) 
{ 
    try 
    { 
     User user = m_context.Users.Where(u => u.UserName == username).FirstOrDefault(); 
     m_context.Users.Remove(user); 
     m_context.SaveChanges(); 
    } 
    catch(Exception ex) 
    { 
     return false; 
    } 
    return true; 
} 

ブール値を返すことが、あなたの例外の理由を与えることはありません。

1

これが最善のアプローチである場合、私は知りませんが、削除されたユーザーにこれをやって確認することができます。

public bool DeleteUser(string username) 
{ 
    User user = m_context.Users.Where(u => u.UserName == username).FirstOrDefault(); 
    m_context.Users.Remove(user); 
    m_context.SaveChanges(); 

    User deletedUser = m_context.Users.Where(u => u.UserName == username).FirstOrDefault(); 

    if (deletedUser == null) 
     return true; 

    return false; 
} 
関連する問題