EF移行を使用する場合のニュアンス

この記事は、EF移行を操作するためのガイドとなることを目的としたものではありません。ここでは、それらを作成する方法についての情報はありません。ここで私はいくつかの滑りやすいポイントを集めて、それらを回避しようとしました。はじめましょう!





アプリケーションの起動時に移行を開始する

次のコードに精通していますか?





context.Database.Migrate();
      
      



その場合、プロジェクトの開始時に移行を自動的にロールする可能性があります。良いか悪いか、コメントで話し合うことができます。次に、次の点について警告したいと思います。





cmd, PS , , 2 : . - , . - , (sln). .





? , ( ) . , , , , , , . ? , . , , , , , Remove-Migration, , , . , , Remove-Migration. , , ?





, 2 :









  1. .





, . .





-, :





  1. , .





  2. , , .





, Remove-Migration. , . Remove-Migration (csproj). , , , Git ( ) .





, ( ). csproj .





SQL

, , (, , - ) SQL . Script-Migration. . . .





EF Core 3.0 Script-DbContext .





, , , , SQL .





ここでのヌートは、単純に思えます。私たちは本質的に何かを変え、移行を生み出し、その結果を喜んでいます。ただし、1つのフィールドを削除して同じタイプの別のフィールドを作成する必要がある場合は、予期しない結果になる可能性があります。この場合、移行者はデータベース内の列の名前を変更するコマンドを作成します。削除された列のすべてのデータは、それぞれ新しい列に転送されます。この場合、列を削除するためと新しい列を作成するための2つの移行を作成できます。その後、1つではなく2つの移行が迫っていないように、それらのアップコードとダウンコードを組み合わせて、最後のコードを削除できます。





結論

結論として、私は言いたいのですが、データに注意を払い、新しい移行をチェックし、それらについて考え、それらを編集することを恐れないでください。また、EFを使用する場合は、自明でないレーキを踏むことになります。








All Articles