内容へ移動
猫型iPS細胞研究所
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
INDEX
»
dotnet
»
スキャフォールディングの手順
トレース:
dotnet:スキャフォールディングの手順
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== スキャフォールディングの手順 ====== [[https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-6.0&tabs=visual-studio|ムービー ページのスキャフォールディング]] - 記号付きリスト - Modelの作成 - NuGet パッケージを追加する - Install-Package Microsoft.EntityFrameworkCore.Design - Install-Package Microsoft.EntityFrameworkCore.SqlServer - Controllerフォルダを右クリックでスキャフォールディング - アプリのビルド - プロジェクトファイルから<html><Nullable>enable</Nullable></html> を削除 - DBの以降 - Add-Migration InitialCreate - Update-Database - アプリの実行 ====== SeedDataの登録 ====== [[https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application#initialize-db-with-test-data|テスト データで DB を初期化する]] [[https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-6.0&tabs=visual-studio#seed-the-database|データベースのシード]] - SeedDataフォルダーを作成しSeedData.csという名前の新しいクラスを作成。 - Program.csに処理追加 ====== 選択したコードジェネレーターを実行中にエラーが発生しました ====== リビルドしても復旧せず。 パッケージを更新したらできるようになった。 ====== 外部キーをつけてもナビゲーション プロパティのデータが表示されない ====== https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-a-more-complex-data-model-for-an-asp-net-mvc-application https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application 解決方法は↓。 virtual ICollectionのため遅延バインディングとなっている。 そのためスキャフォールディングしたままだとICllectionはnullとなる。 [[https://stackoverflow.com/questions/53194666/display-icollection-in-view|Display ICollection in View]] 手動でコンテキストがICollcetionを読み込むのを待つように指示してやる。 コントローラーを以下のように変更する。 <code c# Controller> public async Task<IActionResult> Index() { return View(await _context.Article.ToListAsync()); } </code> ↓ <code c# Controller> public async Task<IActionResult> Index() { return View(await _context.Article.Include(a => a.Comments).ToListAsync()); } </code> ビューでICollectionの関連データも読み取りれるようになる。 <code c# View> @foreach (var item_com in item.Comments) { <td> @Html.DisplayFor(modelItem => item_com.Body) </td> } </code> ====== 部分ビュー ====== 親ビューに下記コードを埋め込むとよびだせる。 親ビュー:Views\Shared\ControllerName\ParantView.cshtml 部分ビュー:Views\Shared\_PartialViewName.cshtml <code c# ParantView.cshtml> <partial name="_PartialViewName" /> </code> ↓でも同じ <code c# ParantView.cshtml> @await Html.PartialAsync("_PartialViewName") </code> ====== Both Entity Framework 6 and Entity Framework Core are installed ====== なぜか「add-migration」ができない。 <code> PM> add-migration [migration-name] Both Entity Framework 6 and Entity Framework Core are installed. The Entity Framework 6 tools are running. Use 'EntityFrameworkCore\Add-Migration' for Entity Framework Core. Your target project '[project-name]' doesn't reference EntityFramework. This package is required for the Entity Framework Core Tools to work. Ensure your target project is correct, install the package, and try again.</code> [[https://entityframeworkcore.com/knowledge-base/51671741/add-migration---both-entity-framework-core-and-entity-framework-6-are-installed|Add migration - Both Entity Framework Core and Entity Framework 6 are installed]] よく見ると、書いてある通りにすればよかった。 <code> PM> EntityFrameworkCore\Add-Migration AddAuthor ... Build started... Build succeeded. ... PM> entityframeworkcore\update-database Both Entity Framework Core and Entity Framework 6 are installed. The Entity Framework Core tools are running. Use 'EntityFramework6\Update-Database' for Entity Framework 6. Build started... Build succeeded. </code> 自動マイグレーションは廃止されていた <code> PM> entityframeworkcore\Enable-Migrations –EnableAutomaticMigrations Both Entity Framework Core and Entity Framework 6 are installed. The Entity Framework Core tools are running. Use 'EntityFramework6\Enable-Migrations' for Entity Framework 6. Enable-Migrations is obsolete. Use Add-Migration to start using Migrations. </code>
dotnet/スキャフォールディングの手順.txt
· 最終更新: 2022/09/01 13:19 by
ips
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ