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

  • プロジェクトの概要


    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
  • SqlServer:Microsoft.EntityFrameworkCore.SqlServer
  • MySql:Pomelo.EntityFrameworkCore.MySql
  • Oracle:Oracle.ManagedDataAccess.Core Citms.EntityFrameworkCore.Oracle
  • SqlLite:Microsoft.EntityFrameworkCore.Sqlite

  • 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