Oi Marco, tudo bem?
No nosso curso "Entity LinQ parte 1: Crie queries poderosas em C#", trabalhamos com a geração de classes a partir do banco de dados, nesta sequência:
https://cursos.alura.com.br/course/linq-c-sharp/task/21119
- abrimos um arquivo de "script DDL" (Data Definition Language), isto é, responsável por criar o banco de dados, as tabelas, colunas índices, chaves estrangeiras, etc., a partir de um script SQL.
- depois de criado o banco de dados, geramos o modelo (.edmx) com todos os objetos mapeados a partir dos objetos do banco de dados
Trabalhar com modelo num arquivo .edmx e útil quando já temos um banco de dados. Isso é chamado de "database first", isto é, primeiro temos o banco de dados, e só depois vamos criar o modelo. Nesse tipo de cenário, as alterações são feitas geralmente no banco de dados, e atualizadas no modelo quando necessário. Note que isso é o inverso do que fazemos no "domain model-first".
Acho preferível criar o modelo e só depois o banco de dados,.Porém nem sempre isso é possível. Se você não tem permissão para modificar o banco de dados, o jeito é criar o modelo a partir dele. Assim, você terá os benefícios do Entity Framework e das consultas LINQ num cenário "Database-First".