// Managing Entity Framework database connection with C# keyword using.
 // On compilation using is rewriten into try/finally shown below.
 private static List <Post> GetAllPostsFromDB()
 {
     using (var context = new PostsContext())
     {
         return(context.Posts.ToList());
     }
 }
        // Managing database connection with try/catch/finally
        private static List <Post> GetAllPostsFromDBTryFinally()
        {
            PostsContext context = null;

            try
            {
                // in case of fail the DBContext will be disposed in finally block
                context = new PostsContext();
                return(context.Posts.ToList());
            }
            catch (SqlException exception)
            {
                // Log exception
                throw;
            }
            finally
            {
                if (context != null)
                {
                    // DBContext implements IDisposable and must be manually disposed
                    ((IDisposable)context).Dispose();
                }
            }
        }