Je cherchais un échantillon qui montre que l'exécution de la procédure stockée à l'aide de blazor.
Jusqu'à présent, je n'ai rien vu concernant l'exécution de la procédure stockée à l'aide de blazor.
Voici le paramètre avec SP
MSKCIS.UpdateDischargeBoardData
@ClientVisitGuid ,
@CurrentLocationGuid ,
@DischargeDateExp ,
@DischargeTimeExp ,
@DischargeDtmExp ,
@userId
Dans EF Core 3.0, vous devez utiliser la méthode d'extension FromSqlRaw pour exécuter une procédure stockée.
Voici une démonstration de travail simple sur l'obtention des données utilisateur de la base de données par des procédures stockées.
Modèle utilisateur
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;
}
}
Méthode ConfigureServices dans 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();
}
}