Sto usando EF 6 per connettersi a un database SQL esistente. Voglio generare un modello per alcune entità esistenti e procedure memorizzate non CRUD. Da Visual Studio, aggiungo un nuovo "ADO.NET Entity Data Model" e selezionando "Code First from Database" per il contenuto del modello. Tuttavia, gli unici oggetti di database che sono disponibili sono Tabelle e Visualizzazioni. Le stored procedure non sono disponibili. È questo di progettazione o mi manca qualcosa qui?
È necessario definire un DTO per ciascuna stored procedure. È sufficiente creare classi semplici in cui i nomi propri delle classi corrispondano al nome delle colonne restituite dalla stored procedure. Quindi, quando si chiama la stored procedure da EF, gli oggetti vengono creati e popolati. Lo spettacolo è fantastico! Qui sto incollando un esempio:
dbContext.Database.CommandTimeout = 3600;
List<CarsDTO> objs = dbContext.Database.SqlQuery<CarsDTO>(
"spGetCars @carMakeId", new SqlParameter("carMakeId", id)
).ToList();