mysql – Is this method for loading data in a C# application recommended?

Add a Repository layer which would be between Data and Service layers. Never use Service directly to Data layer. The Service layer suppose to hold the business logic that would be applied on the Repository layer. Each Service can work with one or more repositories, but each repository should only work with one entity.
Here is an example :

public class PersonRepository
{
    public List<Person> GetPeople() { /* Dapper code here */  }

    public void InsertPerson(Person person) { /* Dapper code here */  }
}

public class PersonService 
{
    private readonly PersonRepository _personRepo = new PersonRepository();
    
    public List<Person> GetPeople() 
    { 
        // if there is some business logic needed 
        // you can add it here 
        return _personRepo.GetPeople();
    }
    
    public List<Person> InsertPerson(Person person)
    { 
        // if there is some business logic needed 
        // you can add it here 
        _personRepo.InsertPerson(person);
    }   
}

Each Repository should validate the object against the entity requirements (e.g. database table).

Each Service should validate the object against the business logic requirements.

In your view model, class properties should be at the top of the class not in between, and sort them by private properties first, then public properties comes after.

This part :

 // Contructor
public MainViewModel()
{
    // Create database service and assign it to the readonly property
    DatabaseService databaseService = new DatabaseService();
    _databaseService = databaseService;

    LoadData();

    InsertDataCommand = new RelayCommand(InsertData);
}
   
// Load data method
protected void LoadData()
{
    if(People == null)
    {
        People = new ObservableCollection<Person>();
    }
    People.Clear();
    _databaseService.GetPeople().ForEach(record => People.Add(record));
}

can be simplified by this :

 // Contructor
public MainViewModel()
{
    _databaseService = new DatabaseService(); 
    LoadData();
    InsertDataCommand = new RelayCommand(InsertData); 
}

// Load data method
protected void LoadData()
{
    People = new ObservableCollection<Person>(_databaseService.GetPeople());
}