title: What is good practice with DB Services C#
body: <p>I am making web project in ASP.NET MVC. Every controller call service to do some operations. Lets take a look on example</p>
  
  <pre><code> public interface IProjectService
      {
          bool ActivateProject(int projectId);
          //others
      }
  </code></pre>
  
  <p>And implemented class </p>
  
  <pre><code> 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 =&gt; p.ProjectId == projectId).SingleOrDefault();
                  project.Status = 1;
                  context.SaveChanges();
                  return true;
              }
          }
      //others
       }
  </code></pre>
  
  <p>In the example administrator wants to activate project. I have validation in jQuery so admin cannot pass nothing else than projectId. </p>
  
  <p>So now what should return this method?
  Should I leave it as void? 
  Lets say there is an error with database so should I throw exception? Whats practice for this kind of operations ?</p>