Solución:
Como usted mismo dijo … El problema principal con el primer enfoque de la base de datos: nunca debe cambiar el modelo manualmente y comenzar a cambiar el nombre de las cosas, etc. Excepto si está 100% seguro de que su base de datos no cambiará más. Si no está 100% seguro, simplemente codifique con el modelo que se ha generado automáticamente.
Re-Scaffolding sobrescribirá cualquier cambio realizado directamente en la clase de modelo, borrando todo lo que haya cambiado o agregado.
Pero puede hacer clases parciales en el lado que no se sobrescribirán con el mapeo automático:
public partial class TableName
{
public string Name_of_a_property
{get; set;}
}
Es una buena manera de agregar código a su entidad mientras se asegura que no se verá afectado por el mapeo automático. Solo asegúrese de que la vista parcial tenga el mismo nombre que la clase generada automáticamente y que todo esté bien.
El andamio reembolsable se puede utilizar para un verdadero enfoque DB First según la respuesta de Antoine Pelletier.
Sin embargo, con mayor frecuencia se utilizan andamios. una vez para la importación inicial del modelo a su código, y luego continúe con el enfoque Code First. El proceso para utilizar la ingeniería inversa para crear un modelo de Entity Framework basado en una base de datos existente que se describe en https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db