コード ファーストの DB 移行でパッケージ マネージャー コンソールが実行するすべての機能を実行できる必要があります。ユーザー定義コードを使用してこれらのコマンドを厳密に実行する方法を知っている人はいますか? 私はこの移行プロセス全体を自動化しようとしていますが、私のチームは、このプロジェクトの開発者の数が原因で移行が同期されないという恐ろしい問題に直面しています。開発者が対話できるプロジェクトを作成し、必要に応じて移行を自動的に再構築したいと考えています。
2 に答える
PM は、PowerShell および PS コマンドレット (Active Directory など) を介して呼び出してい
ます http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference
パッケージ マネージャー コンソールは、Visual Studio 内の PowerShell コンソールです。
...これに関する情報は本質的にほとんどありません-私は以前に数回それを試しましたが、本当に必要な場合は「汚い仕事」をすることになります(よくわかりませんが、それほど難しくないかもしれません-提供あなたはPSの経験があります)
ここに同様の質問/回答があります-PSコマンドレットの作業はかなり複雑です-この場合、いくつかの追加手順が含まれます。また、PS はバージョンに大きく依存する傾向があるため、使用している特定の EF/CF についてこれを確認する必要があります。
コードから entityframework コマンドレットを実行する
EF DbMigrator を使用して移行を追加することが可能
そして、そうするEFのソースコードを見たいと思うかもしれAdd-Migration
ません
(訂正:これは公式リポジトリへのリンクです-@Briceに感謝します)
http://entityframework.codeplex.com/SourceControl/BrowseLatest
(PM エラーは、Add-Migrations を実行するコードの起源が「System.Data.Entity.Migrations.Design.ToolingFacade」であることも示唆しています)
「ちょうど」が必要な場合はUpdate
、DbMigrator.Update
(この男が試してみましたhttp://joshmouch.wordpress.com/2012/04/22/entity-framework-code-first-migrations-executing-migrations- using-code-not-powershell-commands/ )-しかし、それがあなたにとってどれほど関連性があるかはわかりません。足場は、私の知る限り、EF/CF フレームワークを介して C# から直接アクセスできない
本当の問題(Add-Migration) です。
注: - ( http://entityframework.codeplex.com/SourceControl/changeset/view/f986cb32d0a3#src/EntityFramework.PowerShell/Migrations/AddMigrationCommand.cs )のコードに基づいて- そして EF の第一人者が言及したように - その部分コードのSystem.Data.Entity.Migrations.Design
ほとんどがライブラリを呼び出しています - ライブラリがほとんどの処理を行います。それを参照して、実際にAddMigrationCommand
行っていることを繰り返すことが可能であれば、PowerShell はまったく必要ないかもしれません。しかし、外部の発信者には見えない可能性のある「内部」呼び出しなど、それほど単純ではないのではないかと思います.
少なくともこの記事の時点では、System.Data.Entity.Migrations.Design.MigrationScaffolder
クラスに直接アクセスしてScaffold()
メソッドを直接呼び出すことができます。これにより、「通常の」.cs ファイル、「Designer.cs」ファイル、および .cs ファイルの内容を含むオブジェクトが返されます。 resx ファイル。
これらのファイルをどうするかはあなた次第です。
個人的には、これを新しい ASPNET5/DNX プロジェクトで EF6 移行を作成できるツールに変えようとしていますが、これは powershell コマンドではサポートされていません。