public IVendor GetVendor(int vendorId) { var vendor = new Vendor(); using (var command = MainConnection.CreateCommand()) { command.CommandText = "SELECT Name FROM tAccount WHERE ID = @ID"; command.Parameters.AddWithValue("ID", vendorId); vendor.Name = command.ExecuteScalar()?.ToString(); } using (var command = MainConnection.CreateCommand()) { command.CommandText = @"SELECT m.Name, m.Address, d.[Day], m.StartTime, m.EndTime FROM tMarket m INNER JOIN tVendorMarket vm ON vm.MarketID = m.ID INNER JOIN tDay d ON d.ID = m.DayOfWeek WHERE vm.AccountID = @ID"; command.Parameters.AddWithValue("ID", vendorId); using (var reader = command.ExecuteReader()) { vendor.Markets = new List <IMarket>(); while (reader.Read()) { var market = new Market(); market.Name = reader.GetString(reader.GetOrdinal("Name")); market.Address = reader.GetString(reader.GetOrdinal("Address")); market.Day = reader.GetString(reader.GetOrdinal("Day")); market.StartTime = reader.GetString(reader.GetOrdinal("StartTime")); market.EndTime = reader.GetString(reader.GetOrdinal("EndTime")); vendor.Markets.Add(market); } } } return(vendor); }