Как выполнить хранимую процедуру с помощью Blazor - PullRequest
1 голос
/ 14 октября 2019

Я искал некоторый пример, который показывает, что выполнение хранимой процедуры с использованием Blazor.

До сих пор я не видел ничего, связанного с выполнением хранимой процедуры с использованием Blazor.


Вот параметр с SP

 MSKCIS.UpdateDischargeBoardData    
        @ClientVisitGuid  ,
        @CurrentLocationGuid  ,
        @DischargeDateExp ,
        @DischargeTimeExp  ,
        @DischargeDtmExp  ,
        @userId     

1 Ответ

1 голос
/ 15 октября 2019

В EF Core 3.0 вам нужно использовать метод расширения FromSqlRaw для выполнения хранимой процедуры.

Вот простая рабочая демонстрация по получению пользовательских данных из базы данных с помощью хранимой процедуры. процедуры.

Модель пользователя

 public partial class Users
{
    [Key]
    public int PkId { get; set; }
    public string UserId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Supervisor { get; set; }
    public DateTime CreationDate { get; set; }
    public string CreationUser { get; set; }
}

UserManagementContext.cs

public partial class UserManagementContext : DbContext
{
    public UserManagementContext(DbContextOptions<UserManagementContext> options): base(options)
    {}

    public virtual DbSet<Users> Users { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=UserManagementDb;Trusted_Connection=True;ConnectRetryCount=0");
        }
    }
}

UserService.cs

public class UserService
{
    private readonly UserManagementContext _context;

    public UserService(UserManagementContext context)
    {
        _context = context;
    }

    public async Task<Users[]> GetUsersAsync()
    {
        Users[] u;

        u = _context.Users
            .FromSqlRaw("EXECUTE GetUserByUserId {0}", "User1")
            .ToArray();

        return u;
    }
}

Метод ConfigureServices в Startup.cs

public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<UserManagementContext>();

        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSingleton<WeatherForecastService>();

        services.AddTransient<UserService>();  
    }

Index.razor

@page "/"
@using Models
@using Data
@inject UserService us

<form method="post">
<table class="table">
    <thead>
        <tr>
            <th>ID</th>
            <th>UserID</th>
            <th>Name</th>
            <th>Supervisor</th>
            <th>Ersteller</th>
            <th>Erstelldatum</th>
            <th>Optionen</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var user in users)
        {
            <tr>
                <td>@user.PkId</td>
                <td>@user.UserId</td>
                <td>@user.FirstName @user.LastName</td>
                <td>@user.Supervisor</td>
                <td>@user.CreationUser</td>
                <td>@user.CreationDate</td>
                <td>
                    <a>Delete Account</a><br />
                    <a asp-page="/Edit"> Edit Account</a>
                </td>
            </tr>
        }
    </tbody>
</table>
</form>

 @code {

  Users[] users;

  protected override async Task OnInitializedAsync()
  {
    users = await us.GetUsersAsync();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...