Repository to update flights I have the Repository below, but I have noticed that there is a recurrent pattern try / catch which does not seem to be that clean, is there a better way to achieve or to extract that sort logic elsewhere?

public class FlightRepository : IFlightRepository
{
    private readonly FlightManagerDbContext _context;

    public FlightRepository(FlightManagerDbContext context)
    {
        _context = context;
    }

    public Result CreateFlight(Flight flight)
    {
        try
        {
            var tmp = _context.Flight.FirstOrDefault(f =&gt; f.Code == flight.Code);
            if (tmp != null)
                return Result.Conflict($"Flight {flight.Code} already exists");
            _context.Flight.Add(flight);
            _context.SaveChanges();
            return Result.Ok("Flight successfully saved");
        }
        catch (Exception e)
        {
            return Result.Fail(new List&lt;string&gt;() {$"An error occured, {e.Message}"});
        }
    }

    public Result UpdateFlight(Flight flight)
    {
        try
        {
            var tmp = _context.Flight.FirstOrDefault(f =&gt; f.Code == flight.Code);
            if (tmp == null)
                return Result.NotFound($"Flight { flight.Code} not found");

            var toUpdate = _context.Flight.First(f =&gt; f.Code == flight.Code);
            toUpdate.Distance = flight.Distance;
            toUpdate.DepartureLatitude = flight.DepartureLatitude;
            toUpdate.DepartureLongitude = flight.DepartureLongitude;
            toUpdate.DepartureName = flight.DepartureName;
            toUpdate.DepartureTime = flight.DepartureTime;
            toUpdate.ArrivalLatitude = flight.ArrivalLatitude;
            toUpdate.ArrivalLongitude = flight.ArrivalLongitude;
            toUpdate.ArrivalName = flight.ArrivalName;
            toUpdate.ArrivalTime = flight.ArrivalTime;
            toUpdate.ConsumptionPerKm = flight.ConsumptionPerKm;
            toUpdate.TakeOffEffort = flight.TakeOffEffort;
            toUpdate.FlightTime = flight.FlightTime;
            toUpdate.FuelNeeded = flight.FuelNeeded;

            _context.SaveChanges();

            return  Result.Ok($"Flight {flight.Code} successfully updated");
        }
        catch (Exception e)
        {
            return Result.Fail(new List&lt;string&gt;() {$"An error occured, {e.Message}"});
        }
    }

    public Result&lt;Flight&gt; SelectFlight(string code)
    {
        try
        {
            var flight = _context.Flight.FirstOrDefault(f =&gt; f.Code == code);
            if (flight == null)
                return Result&lt;Flight&gt;.NotFound($"Flight {code} not found");
            return  Result&lt;Flight&gt;.Ok(flight);
        }
        catch (Exception e)
        {
            return Result&lt;Flight&gt;.Fail(new List&lt;string&gt;(){$"An error occured, {e.Message}"});
        }
    }

    public Result&lt;List&lt;Flight&gt;&gt; SelectFlights()
    {
        try
        {
            return Result&lt;List&lt;Flight&gt;&gt;.Ok(_context.Flight.Any()
                ? _context.Flight.ToList()
                : new List&lt;Flight&gt;());
        }
        catch (Exception e)
        {
            return Result&lt;List&lt;Flight&gt;&gt;.Fail(new List&lt;string&gt;() {$"An error occured,{e.Message}"});
        }
    }
}
The repository does not need to take responsibility for the errors - remove them from here. The flight repository should add CRUD operations to Flight Dto and not return a result - remove the result. Validation should be done before calling the methods. You are not an automapper, use a tool. You do not need to invent a bicycle every time you need a new repository, use generics. Additionally, you do not need to repeat Flight in every method name, they exist in the Flight repository you can infer that from context. 
All error messages should be unique.

For example, implement an interface:

public interface IRepository&lt;T&gt; where T : EntityBase
{
    T GetById(int id);
    IEnumerable&lt;T&gt; List();
    void Add(T entity);
    void Delete(T entity);
    void Edit(T entity);
}

public abstract class EntityBase
{
   public int Id { get; protected set; }
}


For more info: https://deviq.com/repository-pattern/

The model that contains the list of flights should contain the validation rules and validate flights or the model of the Flight should validate itself. 

What you get from the database is not a Flight model, but a dto. You should use a translator to create a model from dto. Dto's should not contain any business logic just data. Clear separation of concerns helps is needed for clear code.