插入操作代码审查

时间:2016-03-09 09:39:29

标签: c# ado.net

我有方法,如果操作成功则返回1,如果操作失败则返回0。我正在使用实体框架来执行数据库操作。

public class Employee
{
    public int InsertEmployee(Employee employee)
    {
        //insert code
        if(employee.EmployeeId > 0)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
}

重写上面的方法是不错的做法,如下所示。

public enum StatusMessage { Success, Error };

public static class Status
{
    public static StatusMessage GetStatus(this int status)
    {
        if (status > 0)
        {
            return StatusMessage.Success;
        }
        else
        {
            return StatusMessage.Error;
        }
    }
} 

public class Employee
{
    public StatusMessage InsertEmployee(Employee employee)
    {
        //insert code
        return employee.EmployeeId.GetStatus()
    }
}

请建议我更好地编写上述代码。

提前致谢

2 个答案:

答案 0 :(得分:1)

我会返回useCapture。是/否 - >成功/没有成功

  • 返回Int可能会造成混乱。有些人认为您正在返回ID。
  • 当可以返回多个州时使用枚举。

答案 1 :(得分:1)

我实际上会考虑返回void并在操作失败时抛出异常。

如果您希望返回状态指示符,则应将方法重命名为TryInsertEmployee。在这种情况下,我只需返回一个bool来表示成功。问题当然是您无法附加有关操作未成功完成的原因的更多信息。除了例外,你可以。

这两点的原因是:

如果方法无法执行其名称描述的操作,则抛出异常。