我有一个带有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;
}
感谢。
答案 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;
}
然而,返回布尔值不会给出异常的原因。