什么是数据库服务 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。
那么现在应该返回此方法吗?我应该将其保留为无效吗?假设数据库有错误,那么我应该抛出异常吗?这种操作的做法是什么?
作为一般规则,您不应使用异常来处理标准执行流。例外情况用于不该发生的事情实际发生的情况。
话虽如此,有一条边界线,异常和返回值非常适合,这只是一个品味问题。
异常通常会提供更大的灵活性,因为您可以抛出不同的异常类型并通过一次尝试/捕获来处理它们。它们还提供了更多信息。布尔值并不能说明发生了什么。
如果返回布尔值,则应在方法内部处理异常,至少在某处记录错误详细信息。
我会亲自抛出异常以防出现问题,让调用者处理它。