問題タブ [entity-framework-migrations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 分岐時に EF 4.3 移行を使用するクリーンな方法はありますか?
私は EF Migrations を読んでいて、それをいじり始めています。
私はソース管理に Git を使用しており、新機能の作業を開始するたびにブランチを作成しています。その理由は、別の機能にすばやく移動する必要がある場合、またはプッシュする必要がある重要なバグ修正を行う必要がある場合、ブランチを変更して作業を続行できるからです。
現在、実稼働環境 (web.config appsetting) にいない場合、データ モデルの変更があった場合 (コード ファースト) にデータベースを再設定するようにアプリをセットアップしています。わずかなモデルの変更でデータを完全に破壊する必要がないという点で、移行は良いと思いました。
残念ながら、私が望んでいたほどバージョン管理に適していないという兆候がいくつか見られます。たとえば、データ モデルに新しい列を追加し、データベースを更新してから、変更を元に戻すことにした場合、EF はモデルの変更をデータベース自体に格納するため、引き続きモデルの変更を認識します。
ブランチが最初に発生したときにdbバージョンをダウングレードし、多くの記憶と手動追跡なしで作業することにしたブランチ上のdbがある場所に移行するように指示する明確な方法はないようです。
バージョン管理を伴う重要な開発シナリオで移行を利用する方法についての戦略を持っている人はいますか?
c# - C#コード-最初の移行、アップ/ダウン?
パッケージマネージャーコンソールでadd-migrationコマンドを使用して、モデルの移行を生成し始めました。私の質問は、アップとダウンの方法です。downメソッドの目的は、すべての依存関係を削除し、テーブルがすでにデータベースにある場合はそれらを削除することだと思いますか?また、downメソッドはupメソッドの前に実行されますか?upメソッドは逆で、テーブル/インデックスなどを作成/更新しますか?
これを使用すると、downメソッドが大量のcreateテーブルを取得し、それがドロップされることがありますか?最近、多くのテーブルを作成して削除しましたが、upメソッドでもほぼ同じことが起こりました。なんで?
entity-framework - EntityFrameworkコードの最初の移行-以前の移行をターゲットにできますか
CCNetでmigration.exeを使用して、展開時にデータベースを更新しています。公開されたバージョンをロールバックすることにした場合、その変更をロールバックする方法があるかどうか疑問に思っています。
元のバージョンをターゲットにする方法があります:$ InitialDatabase、および名前付き移行TargetMigration:"AddPostAbstract"をターゲットにする方法もあります。ただし、移行ターゲットの名前は、展開ごとに変わります。
名前に関係なく、以前の移行をターゲットにする方法はありますか?
c# - EntityFramework4.3既存のデータベースでの移行のバグ
EF4.1で作成された既存のデータベースがあります。次に、EF 4.3をインストールし、移行を有効にしました。ここで、エンティティの名前を変更しました。Up()メソッドのコードの最初の行はDropForeignKey()です。Update-Databaseを使用して移行を実行すると、「制約を削除できませんでした」という例外がスローされます。
問題は、ef 4.3では、外部キーの命名規則が変更されたことです。4.3では「Table_Table」のように4.1では「FK_Table_Table_Column_ID」のように見えます。
どうすれば変更できますか?
sql-server-2000 - EF4.3.1移行-文字列から日付や時刻を変換するときに変換に失敗しました
EF移行によってデータベースをバージョン管理しようとすると、「文字列から日付や時刻を変換するときに変換に失敗しました」というエラーが発生します。問題は、EFが新しい移行スクリプトエントリに対して生成した日付文字列( '2012-03-21T18:23:13.525Z')が、私のバージョンのMS Sql Server(Microsoft SQL Server Express Edition with Advanced Services(64-少し))。これはバグですか?回避策はありますか?
編集
どうでも。これはEntityFrameworkとは何の関係もありません。SQLServerデータベースがSQLServer2000と下位互換性があるように構成されている場合、その日付形式は受け入れられません。EFに日付文字列を別の形式で出力させる(またはSQL Serverを2000と逆互換にし、EF日付文字列を理解する)ことができない限り、データベースでEF移行を使用することはできません。 -(。互換性レベルがSQLServer2000のデータベースでEFを使用する方法を誰かが考案したかどうかを教えてください。
entity-framework - エンティティ フレームワークで明示的な移行を生成できません
新しい移行を追加していますが、次のメッセージが表示されます。
次の明示的な移行が保留中のため、明示的な移行を生成できません: [201203170856167_left]。新しい明示的な移行を生成する前に、保留中の明示的な移行を適用してください。
誰でも私を助けることができますか?
.net - EF 4.3.1 移行例外 - AlterColumn defaultValueSql は、異なるテーブルに対して同じ既定の制約名を作成します
OOB データベース初期化子を使用して作成した DB があり、EF 4.3.1 で Code First を使用しています。
Add-Migration コマンドレットの新しい "IgnoreChanges" フラグを利用して、列の一部を変更し、既定の SQL 値を追加したいと考えていました。基本的に、一部のエンティティには DateLastUpdated という名前の列があり、DEFAULT を SQL 式 GETDATE() に設定したいと考えています。
「add-migration InitialMigration -ignorechanges」を使用して InitialMigration を作成し、Up() と Down() に以下を追加しました。
次に、「Update-Database -verbose」を実行してみましたが、データベースに同じ名前の既定の制約を作成しようとしていることがわかり、SQL は例外をスローします。
EF は、列の名前に「DF_」を追加することで DEFAULT 制約を作成しているように見えますが、テーブルの名前は使用せず、これをテーブルに固有のものにしています。これは既知のバグですか、それともここで何か間違ったことをしていますか?
c# - dbmigrator が移行を検出しない
私は次のようなものを持っています:
移行ツールが移行を検出していません..
助言がありますか?
entity-framework - データを失うことなく、複合型をエンティティに変換します
CreditCardTransaction
発注書に関連付けられた複合タイプを使用しています。それは本当にそれ自身の実体であるはずでした、そして私は今これを修正しようとしています。
これからの移行をどのように記述しますか?
このエンティティに:
これが私のために生成されたものです。元のテーブルのデータを別のテーブルに簡単に移動できますか?
sql-server - 自動移行によってテーブルが削除される
EF 4.3.1を使用しており、SQL Server 2008での自動移行を有効にしています。テーブルの1つが削除されるという奇妙な問題が発生しました。また、AutomaticMigrationDataLossAllowedをfalseに設定しています。私の2つのテーブルは次のとおりです。
ArtistIdに外部キーがあります。両方のテーブルにデータが入力されています。外部キーエラーが原因で、アプリケーションが実行されないことがよくあります。データベースを確認すると、Artistテーブルが完全になくなっています。Samplesテーブルを見ると、ArtistId列が削除され、以前は存在しなかった「Artist」列(nvarchar)だけに置き換えられています。リポジトリにdeleteメソッドさえないので、データを削除しないことはわかっています。Samplesテーブルからすべてのデータを削除すると、Artistテーブルが表示され、アプリケーションが実行されます。誰かがこの問題に遭遇したことがありますか、または私のセットアップがこれを引き起こす可能性がある理由を知っていますか?前もって感謝します。