什么是数据库服务 C# 的良好做法

本文关键字:数据库 服务 什么 | 更新日期: 2023-09-27 18:34:24

我正在用 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。

那么现在应该返回此方法吗?我应该将其保留为无效吗?假设数据库有错误,那么我应该抛出异常吗?这种操作的做法是什么?

什么是数据库服务 C# 的良好做法

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

话虽如此,有一条边界线,异常和返回值非常适合,这只是一个品味问题。

异常

通常会提供更大的灵活性,因为您可以抛出不同的异常类型并通过一次尝试/捕获来处理它们。它们还提供了更多信息。布尔值并不能说明发生了什么。

如果返回布尔值,则应在方法内部处理异常,至少在某处记录错误详细信息。

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