Использование ASP.net Core 3.0 и Blazor.Я изменяю проект, найденный здесь: https://ankitsharmablogs.com/asp-net-core-crud-using-blazor-and-entity-framework-core/
Я использовал Scofold-DbContext для создания моего файла Context и класса Model.У VS не возникло проблем при обращении в базу данных для создания необходимых файлов.
Razor View:
@using ShopLive1.Shared.Models
@page "/fetchemployees"
@inject HttpClient Http
<h1>Shop Live - Repair Order Update</h1>
@if(roList == null)
{
<p><em>Loading....</em></p>
}
else
{
<table class="table">
<thead>
<tr>
<th>Control Number</th>
<th>VIN</th>
<th>Make</th>
<th>Model</th>
<th>Customer</th>
<th>Repair Stage</th>
<th>Location</th>
<th>Assigned</th>
</tr>
</thead>
<tbody>
@foreach(var ro in roList)
{
<tr>
<td>@ro.ControlNumber</td>
<td>@ro.Vin</td>
<td>@ro.Make</td>
<td>@ro.Model</td>
<td>@ro.Customer</td>
<td>@ro.Stage</td>
<td>@ro.VehicleLocation</td>
<td>@ro.Technician</td>
</tr>
}
</tbody>
</table>
}
@functions{
RepairOrder[] roList;
protected override async Task OnInitAsync()
{
roList = await Http.GetJsonAsync<RepairOrder[]>("api/RepairOrder/Index");
}
}
Класс уровня доступа к данным:
ShopLiveContext db = new ShopLiveContext();
//To get all repair orders
public List<RepairOrder> GetAllRepairOrders()
{
try
{
return db.RepairOrder.ToList();
}
catch
{
throw;
}
}
//To add new Repair Orders
public void AddRepairOrder(RepairOrder ro)
{
try
{
db.RepairOrder.Add(ro);
db.SaveChanges();
}
catch
{
throw;
}
}
//To update Repair Orders
public void UpdateRepairOrder(RepairOrder ro)
{
try
{
db.Entry(ro).State = EntityState.Modified;
db.SaveChanges();
}
catch
{
throw;
}
}
//Get the details of a particular RO
public RepairOrder GetRepairOrderDetails(int id)
{
try
{
RepairOrder ro = db.RepairOrder.Find(id);
return ro;
}
catch
{
throw;
}
}
//To delete a record
public void DeleteRepairOrder(int id)
{
try
{
RepairOrder ro = db.RepairOrder.Find(id);
db.RepairOrder.Remove(ro);
db.SaveChanges();
}
catch
{
throw;
}
}
}
}
Файл контекста данных:
public ShopLiveContext()
{
}
public ShopLiveContext(DbContextOptions<ShopLiveContext> options)
: base(options)
{
}
public virtual DbSet<RepairOrder> RepairOrder { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer("Data Source=sumcso-8g5lr52;Initial Catalog=ShopLive;Integrated Security=True");
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasAnnotation("ProductVersion", "3.0.0-preview5.19227.1");
modelBuilder.Entity<RepairOrder>(entity =>
{
entity.Property(e => e.ControlNumber)
.IsRequired()
.HasMaxLength(13)
.IsUnicode(false);
entity.Property(e => e.Customer)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.Make)
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.ManagerNote)
.HasMaxLength(5000)
.IsUnicode(false);
entity.Property(e => e.Model)
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.Stage)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.TechncicianNote)
.HasMaxLength(5000)
.IsUnicode(false);
entity.Property(e => e.Technician)
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.VehicleLocation)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false);
entity.Property(e => e.Vin)
.HasColumnName("VIN")
.HasMaxLength(20)
.IsUnicode(false);
});
}
}
Когда я запускаю проект и щелкаю ссылку на новую страницу, он показывает «загрузка ...», но никогда не получает данные из базы данных и не загружает таблицу.
Может ли кто-нибудь указать мне правильное направление относительно того, что я, возможно, упускаю?