Eu sunt încercarea de a rula o procedură într-un API Odihnitor cu NET 5 și Entity Framework Core 5, procedura de returnare a datelor din diferite tabele.
Problema pe care o am este ca nu stiu cum sa execute procedura pentru a reveni mai târziu de date, în DetailsClientsDto clasa.
Încercați să executați procedura în următoarele moduri, fără succes:
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);
Eroare:
DataBase facade does not contain a definition for SqlQuery. Is there a using directive missing?
Metoda pe care o folosesc este:
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; }
}
Imi poti spune te rog cum ar trebui să execute procedura și să se întoarcă de date, vă mulțumesc.