Sto cercando di eseguire una procedura in un RESTful API, con un NETTO 5 e Entity Framework Core 5, la procedura restituisce i dati di tabelle diverse.
Il problema che ho è che non so come eseguire la procedura per poi restituire i dati, in DetailsClientsDto classe.
Provare a eseguire la procedura nei seguenti modi, senza successo:
var result = await _context.Database.SqlQuery<DetailsClientsDto>("EXEC [dbo].[SPROC_DETAILS] @ID_USER", sqlParameters);
var result = await _context.SqlQuery<DetailsClientsDto>("EXEC [dbo].[SPROC_DETAILS] @ID_USER", sqlParameters);
Il messaggio di errore:
DataBase facade does not contain a definition for SqlQuery. Is there a using directive missing?
Il metodo che sto usando è:
private readonly MarketContext _context;
public ClientsRepository(MarketContext context) : base(context)
{
_context = context;
}
public async Task<DetailsClientsDto> GetDetailsRepository(SearchDetailsDto details)
{
var sqlParameters = new[]
{
new SqlParameter
{
ParameterName = "ID_USER",
Value = details.IdUser,
SqlDbType = SqlDbType.Int,
},
new SqlParameter
{
ParameterName = "ID_CLIENT",
Value = detalles.IdClient,
SqlDbType = SqlDbType.Int,
IsNullable=true
},
};
return await Task.Run(async () =>
{
var result = await _context.Database.SqlQuery<DetailsClientsDto>("EXEC [dbo].[SPROC_DETAILS] @ID_USER", sqlParameters);
return result;
});
}
public class DetailsClientsDto
{
public int IdUser { get; set; }
public int IdClient { get; set; }
public string User { get; set; }
public string Adress { get; set; }
public string Car { get; set; }
public string Color { get; set; }
}
Per favore puoi dirmi come devo eseguire la procedura e restituire i dati, grazie.