改进我的存储库中的删除功能

时间:2012-01-11 16:02:16

标签: asp.net-mvc-3 entity-framework

我有一个带有bool返回值的的DeleteUser函数。我的ORM是实体框架。正如你在下面看到的那样,我强制在函数末尾的真值,这不是很好。如何仅在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;
    }

感谢。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

尝试......捕捉应该有效:

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

然而,返回布尔值不会给出异常的原因。