Я пытаюсь запустить процедуру в RESTful API с NET 5 и Entity Framework Core 5, процедура возвращает данные из разных таблиц.
Проблема, с которой я столкнулся, заключается в том, что я не знаю, как выполнить процедуру для последующего возврата данных в классе DetailsClientsDto.
Попробуйте выполнить процедуру следующими способами, но безуспешно:
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);
Из-за ошибки:
DataBase facade does not contain a definition for SqlQuery. Is there a using directive missing?
Метод, который я использую, заключается в следующем:
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; }
}
Пожалуйста, не могли бы вы сказать мне, как я должен выполнить процедуру и вернуть данные, спасибо.