DB Services C#的良好实践是什么?

时间:2016-02-13 13:13:31

标签: c# asp.net

我在ASP.NET MVC中制作web项目。每个控制器调用服务来做一些操作。让我们来看看示例

 public interface IProjectService
    {
        bool ActivateProject(int projectId);
        //others
    }

实施了课程

 public class ProjectService : IProjectService
    {
        private readonly IContextProvider _contextProvider;

        public ProjectService(IContextProvider contextProvider)
        {
            _contextProvider = contextProvider;
        }

       public bool ActivateProject(int projectId)
        {
            using (var context = _contextProvider.GetContext())
            {
                var project = context.Projects.Where(p => p.ProjectId == projectId).SingleOrDefault();
                project.Status = 1;
                context.SaveChanges();
                return true;
            }
        }
    //others
     }

在示例中,管理员想要激活项目。我在jQuery中进行了验证,因此管理员除了projectId之外不能传递任何东西。

那么现在应该返回这个方法呢? 我应该把它留空吗? 让我们说数据库有错误,所以我应该抛出异常吗?这种操作的实践是什么?

1 个答案:

答案 0 :(得分:2)

作为一般规则,您不应使用异常来处理标准执行流程。例外情况用于不应发生事情的情况。

据说,有一条边界线,异常和返回值很合适,这只是一个品味问题。

异常通常会提供更大的灵活性,因为您可以抛出不同的异常类型并使用单个try / catch处理它们。他们还提供了更多信息。布尔值并没有说明发生了什么。

如果你返回一个布尔值,你应该处理方法中的异常,至少在某处记录错误细节。

如果出现问题,我会亲自抛出异常并让调用者处理它。