2017-07-25 3 views
0

私はEF6を使用し、最初の移行をコードします。私はTeamMemberDeprecatedにTeamMemberの名前を変更し、テーブルレイアウトにいくつかの違いで新しい提出という名前TeamMemberを追加する二つのテーブルef6を使用してテーブルと外部キーの名前を変更できない

public class Team { 

    public int Id { get; set; } 

    public string Name { get; set; } 
} 

public class TeamMember { 

    public int Id { get; set; } 

    public string Name { get; set; } 

    public Team Team { get; set; } 

    public int TeamId { get; set; } 

} 

を持っています。新しいテーブルを作成する主な理由はデータです。現在のTeamMemberテーブルのすべてのデータを保存して、名前を変更する必要があるので、必要な特定のデータのみを新しいTeamMemberテーブルに転送したいと考えています。

私は、移行を追加すると、それはそれは行いません。これは何

RenameTable(name: "dbo.TeamMember", newName: "TeamMemberDeprecated"); 

のように見えますがFK_dbo.TeamMember_dbo.Team_TeamIdからFK_dbo.TeamMemberDeprecated_dbo.Team_TeamIdに外部キープロパティの名前を変更しています。

外部キーFK_dbo.TeamMember_dbo.Team_TeamIdがすでにデータベースに存在するため、新しいTeamMemberテーブルを作成するときに問題が発生します。

私は、外部キーをドロップし、それを名前を変更しようとしたが、これは何もしていないと私は実行すると、移行が、外部キーがnullであることを期待していますなぜ私が見る-verbose。私はデータを保存したいが、おそらく私のアプローチは間違っている。

何か提案はありがたいです、ありがとうございます。

答えて

1

は、SQL管理スタジオに行き、手動で外部キーの名前を変更し、EFは、テーブルの名前を変更してみましょう。

バックEFに移動し、変更を行い、移行を実行し、EFは、新しい外部キーに

を作成してみましょう、あなたのDBのバックアップにはあまり

+0

感謝を忘れないでください!これは私が以前とポストの移行を対象とし、すべてが適切に命名されていることを確認することができるように私は私の移行スクリプトでSQLコマンドを含めマイナーチェンジでやったことは基本的です。ご協力いただきありがとうございます。 – Woot

関連する問題