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); }