C# 插入操作代码检查

C# 插入操作代码检查,c#,ado.net,C#,Ado.net,我有一个方法,如果操作成功,则返回1;如果操作失败,则返回0。我使用实体框架来执行数据库操作 public class Employee { public int InsertEmployee(Employee employee) { //insert code if(employee.EmployeeId > 0) { return 1; } else

我有一个方法,如果操作成功,则返回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()
    }
}
请给我一个更好的方法来写上面的代码


提前感谢

我将返回一个
布尔值
。对/错->成功/不成功

  • 返回Int可能会造成混乱。有些人认为你正在返回一个Id
  • 当可以返回多个状态时,请使用枚举

我实际上会考虑返回<代码>无效>代码>,如果操作失败,抛出异常。

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

这两点的原因是:


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

为什么不返回一个
布尔值?当您有两个以上的状态时,应该将其更改为
Enum
。我认为这个问题更适合CodeReview,因为您没有需要帮助的实际问题,这只是一个基于意见的问题。好的论点,更好的解决方案+1感谢您的回复。你能举个例子吗