В этом случае вы должны создать экземпляр Company, а затем использовать его для возврата списка компаний?
Некоторые люди делают это, но я предпочитаю разделить мой объект данных в тупой контейнер данных:
public class Company : EntityBase
{
private int _id;
private string _name;
private string _location;
}
Я использую базовый класс (EntityBase), который содержит общие методы для преобразования тупой сущности обратно в коллекцию SQLParameters (для сохранения), а также для ее создания из передаваемого в SQLReader (это переопределяется в каждом конкретном классе, сопоставить читателя с частными переменными).
Затем я предпочитаю использовать класс «Service», который фактически выполняет вызовы базы данных, создает соответствующий объект сущности и возвращает его. Я могу использовать здесь полиморфизм для значительного уменьшения дублирования кода.