Yordamı yürütün ve Net 5'te farklı tablolardan veri döndürün

0

Soru

NET 5 ve Entity Framework Core 5 ile RESTful apı'de bir prosedür çalıştırmaya çalışıyorum, prosedür farklı tablolardan veri döndürüyor.

Sahip olduğum sorun, daha sonra DetailsClientsDto sınıfında veri döndürmek için prosedürün nasıl yürütüleceğini bilmememdir.

Prosedürü başarılı olmadan aşağıdaki şekillerde çalıştırmayı deneyin:

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);

Hatasız:

DataBase facade does not contain a definition for SqlQuery. Is there a using directive missing?

Kullandığım yöntem şu şekildedir:

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; }
}

Lütfen prosedürü nasıl uygulayacağımı ve verileri nasıl iade edeceğimi söyler misiniz, teşekkür ederim.

1

En iyi cevabı

0

Bu bir örnektir:

// Load this namespace to use SqlParameter
using Microsoft.Data.SqlClient;

//.. or use db.Set<DetailsClientsDto>()
var result = await db.DetailsClientsDto 
  .FromSqlRaw("EXEC [dbo].[SPROC_DETAILS] @idUser, @anotherParam", 
    new SqlParameter("idUser", value1),     
    new SqlParameter("anotherParam", value2))
  .AsNoTracking()
  .ToListAsync()
2021-11-24 01:46:45

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................