私は、MySQLデータベースに接続するASP.NET Core MVCプロジェクトを開発中です。私は正常にデータベースにアイテムを作成することができましたが、データの取得に問題があります。ASP.NETコアのMySQLサーバからデータを取得
私startup.csは、次のようになります。データを取得するための
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddScoped<ISqlService, SqlService>();
services.AddDbContext<WebAPIDataContext>(options => options.UseMySQL(Configuration.GetConnectionString("MySqlServer")));
}
私のコントローラは、次のようになります。
public IActionResult Index()
{
var model = new ItemsViewModel();
model.items = _sqlService.GetAllItems();
return View(model);
}
マイ・サービス(EF)は次のようになります。
public IEnumerable<Item> GetAllItems()
{
return _webAPIDataContext.items;
}
私のHTMLはこのようになります:
<table class="table table-hover">
<thead>
<tr>
<th>Id</th>
<th>Headline</th>
<th>Category</th>
<th>Description</th>
<th>Picture URL</th>
<th></th>
</tr>
</thead>
@foreach (var item in Model.items) {
<tr>
<td>@item.items_id</td>
<td>@item.items_headline</td>
<td>@item.items_category</td>
<td>@item.items_description</td>
<td>@item.items_picture</td>
<td>
<div class="pull-right">
<a href="/items/edit/@item.items_id" class="btn btn-default">Edit</a>
<a href="/items/remove/@item.items_id" class="btn btn-danger">Delete</a>
</div>
</td>
</tr>
}
</table>
私はC#/ ASP.NET Coreでかなり新しいので、これが動作しない小さな理由かもしれません。
htmlファイルでforeach文を省略すると、エラーは発生せず、ページがレンダリングされます。
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware
未処理の例外が発生した[0]:見つからない方法:「ボイドMicrosoft.EntityFrameworkCore
これは、コンソールでスローされるエラーです。 (Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IChangeDetector) 'を呼び出します。 (System.MissingMethodException):メソッドが見つかりません: ' Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite、のServiceProviderプロバイダ)でSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throwで
()
Oracleは丁重バージョン管理をめちゃくちゃ。 '7.0.6-IR31'はEF Core 1.0用です。 '6.10.1-beta'はEF Core 1をサポートする最初にリリースされたバージョンです。1(リリースされたのは2017、7.0.6-IR31は2016からです)、EF Core 1.0で '6.10.1-beta'を使用する必要があります – Tseng
" MySql.Data.EntityFrameworkCore "v6.10.1-ベータ版は "MySql.Data.EntityFrameworkCore.Design" c6.10.1-bateをインストールすることです。最初のパッケージはNuget Package Managerでは検出されませんが、2番目のパッケージの依存関係であり、自動的にインストールされます。 –