Entity Framework Core練習参考
6603 ワード
プロジェクトのアドレス:https://gitee.com/dhclly/IceDog.EFCore
Microsoft EntityFramework Coreフレームワークの練習テスト
公式ドキュメントエントリhttps://docs.microsoft.com/zh-cn/ef/core/ Razor Pages with Entity Framework Core in ASP.NET Core https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/intro?view=aspnetcore-2.2&tabs=visual-studio Entity Framework Core 2.0使用入門Demohttps://github.com/stulzq/EntityFrameworkCore2Demo Entity Framework Core 2.0使用入門http://www.cnblogs.com/stulzq/p/7717873.html Entity Framework Core 2.0新機能http://www.cnblogs.com/stulzq/p/7366044.html EF Core(1.DBFirst)を一歩一歩学ぶhttps://www.cnblogs.com/GuZhenYin/p/6857413.html Entity Framework Code First(一)https://www.cnblogs.com/panchunting/p/entity-framework-code-first-conventions.html Contoso University https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/intro?view=aspnetcore-2.2&tabs=visual-studio
これはEFCore Code Firstのサンプルプロジェクトで、詳細はプロジェクト内のreadmeに接続文字列をIceDogに配置する.EFCore\src\IceDog.EFCore.Cmd\Context\BloggingContext.cs
これはEFCore DB Firstのサンプルプロジェクトで、詳細はプロジェクトのreadmeにあります.
このプロジェクトはマイクロソフトの公式の快速入門例本人の練習で、皆さんの参考にすることができて、詳細はプロジェクトの中のreadmeの中にあります.
公式チュートリアルのアドレス:https://docs.microsoft.com/zh-cn/ef/core/
これはEF CoreのWebApiプロジェクトでの応用であり、一般的なプロジェクトとは異なり、データベース接続をContextではなく
詳細はプロジェクトのreadmeにあります
この項目は以下のドキュメントの内容を実現し、チュートリアルは公式のものを見ればよい.
ASP.NET Core RazorページとEF Core-チュートリアルシリーズhttps://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/?view=aspnetcore-2.2
リファレンスコードhttps://github.com/aspnet/Docs/tree/master/aspnetcore/data/ef-rp/intro/samples
詳細はプロジェクトのreadmeにあります
以下のドライバはnugetで見つけることができ、MySql/MariaDBはPomelo EF Coreコンポーネントの使用を推奨しています.公式の現在のバグが存在する可能性があるため、Pomelo EF Coreもマイクロソフトの公式に推奨されています.
公式推薦リストの住所:https://docs.microsoft.com/zh-cn/ef/core/providers/index SqlServer:Microsoft.EntityFrameworkCore.SqlServer MySql:Pomelo.EntityFrameworkCore.MySql Oracle:Oracle.ManagedDataAccess.Core Citms.EntityFrameworkCore.Oracle SqlLite:Microsoft.EntityFrameworkCore.Sqlite
移行連結バージョンの追加
新しい命令
プロジェクトフォルダに入って実行します(.csprojファイルを含むディレクトリ)
連結の削除
新しい命令
移行バージョンのリストを表示
データベースの更新
新しい命令
ライブラリ削除命令
新しい命令
上記のコマンドが使用できない場合は、パッケージマネージャコンソールに次のコマンドを入力します.
上記のコマンドを実行するとBuild failedが現れる.
なぜなら、ソリューションには複数のタイプのアプリケーションがあり、1つのタイプしか残っていないため、他のものはアンインストールすればいい.例えば、1つのプロジェクトにコンソールプロジェクトとwebapiプロジェクトが含まれている場合、コンソールを起動プロジェクトとして設定しても、起動時にWebプロジェクトを起動し、構築に失敗します.
1、プロジェクトをコンパイルする.プロジェクトにEF Coreを初めて追加した後、このステップを実行する必要があります.そうしないと、次にインポートするEntityFrameworkCoreが見つかりません.psd 1モジュール.
2、前述のファイルの場所を見つけ、Import-Moduleコマンドでインポートします.ここでは、
実行情報は次のとおりです.
モジュール「EntityFrameworkCore」の一部のインポートコマンドの名前には、承認されていない動詞が含まれています.これらの動詞は、コマンド名が発見されにくい可能性があります.未承認の動詞を持つコマンドを検索するには、Verboseパラメータを使用してImport-Moduleコマンドを再実行します.承認された動詞のリストについては、Get-Verbと入力します.
その後、コマンドを正常に使用できます.
https://stackoverflow.com/questions/44785540/ef-core-add-migration-build-failed
なぜなら、ソリューションにはさまざまなタイプのアプリケーション(プロジェクトにはMigrationsが含まれている)があり、1つのタイプしか残っていないので、他のものはアンインストールすればいいのです.1つのプロジェクトにはコンソールプロジェクトとwebapiプロジェクトが含まれています.コンソールを起動プロジェクトとして設定しても、起動時にはWebプロジェクトが起動し、構築に失敗します.
もちろん、失敗していないのもなぜか悩まないでください.失敗していないほうがいいです.
この例をVisual Studioから実行するには、作業ディレクトリをプロジェクトのルートディレクトリに手動で設定する必要があります.作業ディレクトリが設定されていない場合、次の
作業ディレクトリの設定:[ソリューションエクスプローラ]で、プロジェクトを右クリックし、[プロパティ]を選択します. 左ウィンドウ枠で「デバッグ」タブを選択します. 作業ディレクトリをプロジェクトディレクトリに設定します. 変更内容を保存します.
リンク:https://docs.microsoft.com/zh-cn/ef/core/get-started/netcore/new-db-sqlite#vs
テストはmysqlを使用するため、Pomeloを導入する必要がある.EntityFrameworkCore.MySql v2.1.2.
実際にコンソールプロジェクトにはnugetパッケージ、Microsoftを導入する必要がある.EntityFrameworkCore.Design,このとき導入するバージョンはv 2である.1.4.
Webプロジェクトについては、Microsoftをインストールする必要がある.EntityFrameworkCoreとMicrosoftEntityFrameworkCore.Relational、この時点でインストールされているバージョンはv 2です.1.4.
そうでない場合、次のEntity Framework Core Toolsコマンドを実行すると、上の依存ライブラリが欠落していることを示すエラーが表示されます.
学習ドキュメントのアドレス:https://gitee.com/dhclly/icedog.script.test/tree/master/doc/dot-net/dot-net-core/entity-framework-core
プロジェクト紹介
Microsoft EntityFramework Coreフレームワークの練習テスト
リファレンスドキュメントのチュートリアル
プロジェクトの概要
IceDog.EFCore.Cmd.CodeFirst
これはEFCore Code Firstのサンプルプロジェクトで、詳細はプロジェクト内のreadmeに接続文字列をIceDogに配置する.EFCore\src\IceDog.EFCore.Cmd\Context\BloggingContext.cs
IceDog.EFCore.Cmd.DBFirst
これはEFCore DB Firstのサンプルプロジェクトで、詳細はプロジェクトのreadmeにあります.
IceDog.EFCore.Cmd.OfficalDemo
このプロジェクトはマイクロソフトの公式の快速入門例本人の練習で、皆さんの参考にすることができて、詳細はプロジェクトの中のreadmeの中にあります.
公式チュートリアルのアドレス:https://docs.microsoft.com/zh-cn/ef/core/
IceDog.EFCore.WebApiServer
これはEF CoreのWebApiプロジェクトでの応用であり、一般的なプロジェクトとは異なり、データベース接続をContextではなく
IceDog.EFCore\src\IceDog.EFCore.WebApiServer\Startup.cs
奥のConfigureServices
奥詳細はプロジェクトのreadmeにあります
IceDog.EFCore.ContosoUniversity
この項目は以下のドキュメントの内容を実現し、チュートリアルは公式のものを見ればよい.
ASP.NET Core RazorページとEF Core-チュートリアルシリーズhttps://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/?view=aspnetcore-2.2
リファレンスコードhttps://github.com/aspnet/Docs/tree/master/aspnetcore/data/ef-rp/intro/samples
詳細はプロジェクトのreadmeにあります
一般的なEF Core駆動
以下のドライバはnugetで見つけることができ、MySql/MariaDBはPomelo EF Coreコンポーネントの使用を推奨しています.公式の現在のバグが存在する可能性があるため、Pomelo EF Coreもマイクロソフトの公式に推奨されています.
公式推薦リストの住所:https://docs.microsoft.com/zh-cn/ef/core/providers/index
EF関連命令
移行連結バージョンの追加
Add-Migration v1.0.0 -o Migrations
Add-Migration v1.0.1 -o Migrations
新しい命令
プロジェクトフォルダに入って実行します(.csprojファイルを含むディレクトリ)
dotnet ef migrations add v1.0.0
dotnet ef migrations add -p "ConsoleApp.SQLite.csproj"#
dotnet ef migrations add --project "ConsoleApp.SQLite.csproj"#
dotnet ef migrations add -s "ConsoleApp.SQLite.csproj"#
dotnet ef migrations add --startup-project "ConsoleApp.SQLite.csproj"#
連結の削除
Remove-Migration
新しい命令
dotnet ef migrations remove
移行バージョンのリストを表示
dotnet ef migrations list
データベースの更新
Update-Database
新しい命令
dotnet ef database update
ライブラリ削除命令
Drop-Database
新しい命令
dotnet ef database drop
上記のコマンドが使用できない場合は、パッケージマネージャコンソールに次のコマンドを入力します.
Import-Module C:\Users\Administrator\.nuget\packages\microsoft.entityframeworkcore.tools\2.1.0\tools\EntityFrameworkCore.psd1
上記のコマンドを実行するとBuild failedが現れる.
なぜなら、ソリューションには複数のタイプのアプリケーションがあり、1つのタイプしか残っていないため、他のものはアンインストールすればいい.例えば、1つのプロジェクトにコンソールプロジェクトとwebapiプロジェクトが含まれている場合、コンソールを起動プロジェクトとして設定しても、起動時にWebプロジェクトを起動し、構築に失敗します.
QA
1.Add-Migration initエラーAdd-Migrationの実行:「Add-Migration」項目をcmdlet、関数、スクリプトファイル、または実行可能プログラムの名前として認識できません。名前のスペルを確認し、パスが含まれている場合は、パスが正しいことを確認してからもう一度試してください。どのように解決しますか?
1、プロジェクトをコンパイルする.プロジェクトにEF Coreを初めて追加した後、このステップを実行する必要があります.そうしないと、次にインポートするEntityFrameworkCoreが見つかりません.psd 1モジュール.
2、前述のファイルの場所を見つけ、Import-Moduleコマンドでインポートします.ここでは、
Import-Module C:\Users\Administrator\.nuget\packages\microsoft.entityframeworkcore.tools\2.1.0\tools\EntityFrameworkCore.psd1
実行情報は次のとおりです.
モジュール「EntityFrameworkCore」の一部のインポートコマンドの名前には、承認されていない動詞が含まれています.これらの動詞は、コマンド名が発見されにくい可能性があります.未承認の動詞を持つコマンドを検索するには、Verboseパラメータを使用してImport-Moduleコマンドを再実行します.承認された動詞のリストについては、Get-Verbと入力します.
その後、コマンドを正常に使用できます.
2.Add-Migration、Update-Databaseを実行してbuild failedが発生したらどうしますか?
https://stackoverflow.com/questions/44785540/ef-core-add-migration-build-failed
なぜなら、ソリューションにはさまざまなタイプのアプリケーション(プロジェクトにはMigrationsが含まれている)があり、1つのタイプしか残っていないので、他のものはアンインストールすればいいのです.1つのプロジェクトにはコンソールプロジェクトとwebapiプロジェクトが含まれています.コンソールを起動プロジェクトとして設定しても、起動時にはWebプロジェクトが起動し、構築に失敗します.
もちろん、失敗していないのもなぜか悩まないでください.失敗していないほうがいいです.
3.sqlliteを使用する場合、vsデバッグプロンプトテーブルが存在しない場合はどうしますか?
この例をVisual Studioから実行するには、作業ディレクトリをプロジェクトのルートディレクトリに手動で設定する必要があります.作業ディレクトリが設定されていない場合、次の
Microsoft.Data.Sqlite.SqliteException
:SQLite Error 1: 'no such table: Blogs'
が発生します.作業ディレクトリの設定:
リンク:https://docs.microsoft.com/zh-cn/ef/core/get-started/netcore/new-db-sqlite#vs
アタッチメント
テストはmysqlを使用するため、Pomeloを導入する必要がある.EntityFrameworkCore.MySql v2.1.2.
実際にコンソールプロジェクトにはnugetパッケージ、Microsoftを導入する必要がある.EntityFrameworkCore.Design,このとき導入するバージョンはv 2である.1.4.
Webプロジェクトについては、Microsoftをインストールする必要がある.EntityFrameworkCoreとMicrosoftEntityFrameworkCore.Relational、この時点でインストールされているバージョンはv 2です.1.4.
そうでない場合、次のEntity Framework Core Toolsコマンドを実行すると、上の依存ライブラリが欠落していることを示すエラーが表示されます.
学習ドキュメントのアドレス:https://gitee.com/dhclly/icedog.script.test/tree/master/doc/dot-net/dot-net-core/entity-framework-core