A volte capita che quando importiamo nel file edmx delle stored procedure particolarmente complesse, questo non sia in grado di capirne il risultato e quindi genera dei complex type che non corrispondono. In questi casi riceviamo un'eccezione in fase di esecuzione del codice.
Per assicurarci che il designer interpreti correttamente il risultato, dobbiamo modificare la stored procedure così da fornire all'esterno i dati necessari. Questo possiamo farlo mettendo come prima istruzione della stored procedure una query fake, ma che viene interpretata dal designer di Entity Framework come risultato della stored procedure.
IF 1 = 2 BEGIN SELECT cast(null as int) as Id, cast(null as varchar(max)) as Descrizione, where 1 = 2 END
Una volta aggiunta questo codice all'inizio della stored procedure, il designer di Entity Framework considererà come risultato della stored procedure una lista di record con i campi Id e Descrizione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Criptare la comunicazione con mTLS in Azure Container Apps
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Utilizzare le collection expression in C#
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Usare il versioning con i controller di ASP.NET Core Web API
Disabilitare automaticamente un workflow di GitHub (parte 2)
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Usare le collection expression per inizializzare una lista di oggetti in C#
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Sfruttare lo streaming di una chiamata Http da Blazor
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Gestire i null nelle reactive form tipizzate di Angular