public IReadOnlyList <Person> FindMany(IReadOnlyList <Id <Person> > personIds)
        {
            if (Program.Settings.GetValue <bool>("UseEF"))
            {
                using (var context = new EntityFrameworkContext())
                {
                    return(context.Person.Where(x => personIds.Any(p => p == x.PersonId)).Select(CreatePerson).ToList());
                }
            }
            else
            {
                using (var connection = Database.CreateConnection())
                {
                    const string sql = @"
					SELECT
						person_id as personid,
						first_name as firstname,
						last_name as lastname
					FROM
						public.person
					WHERE
						person_id = any(@PersonIds)"                        ;

                    return(connection
                           .Query <PersonRecord>(sql, new { PersonIds = personIds.AsGuidList() })
                           .Select(CreatePerson)
                           .ToList());
                }
            }
        }
        public bool TryFind(Id <Person> personId, out Person person)
        {
            if (Program.Settings.GetValue <bool>("UseEF"))
            {
                using (var context = new EntityFrameworkContext())
                {
                    person = context.Person.Select(CreatePerson).SingleOrDefault(x => x.PersonId == personId);
                }
            }
            else
            {
                using (var connection = Database.CreateConnection())
                {
                    const string sql = @"
					SELECT
						person_id as personid,
						first_name as firstname,
						last_name as lastname
					FROM
						public.person
					WHERE
						person_id = @personId"                        ;

                    person = connection
                             .Query <PersonRecord>(sql, new { personId })
                             .Select(CreatePerson)
                             .SingleOrDefault();
                }
            }

            return(person != null);
        }