Улучшение моей функции удаления в моем хранилище - PullRequest
0 голосов
/ 11 января 2012

У меня есть функция DeleteUser с возвращаемым значением bool .Мой ORM - это Entity Framework.Как вы можете видеть ниже, я устанавливаю истинное значение в конце функции, что не совсем хорошо.Как я могу приступить к размещению этого возвращаемого значения (bool), только когда SaveChanges выполняет свою работу (удаляя пользователя)?Может быть, попытка ... поймать?Другое решение?

    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;
    }

Спасибо.

Ответы [ 2 ]

1 голос
/ 11 января 2012

Я не знаю, является ли это лучшим подходом, но вы можете подтвердить удаленного пользователя следующим образом:

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;
}
0 голосов
/ 11 января 2012

try ... 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;
}

Возвращение логического значения не даст вам причину исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...