最初にエンティティ フレームワークとコードで自動移行を使用しようとしています。クラスに新しいプロパティを追加しました(チームもカスタムクラスです):
public virtual Team SecondTeam { get; set; }
データベースの更新に問題があります。コマンドを記述した後、コンソールに次のように表示されます。
列の直接的な名前変更は、SQL Server Compact ではサポートされていません。SQL Server Compact で列の名前を変更するには、再作成する必要があります。
通常、更新は機能しています(単純な int prop を追加しようとしたところ、更新されるだけです)が、それが仮想の場合は問題があります。誰でもこれで私を助けることができますか?ありがとうございました
編集:後のすべての行Update-Database -Verbose
Using NuGet project 'Project'.
Using StartUp project 'Project'.
Target database is: '|DataDirectory|database.sdf' (DataSource: |DataDirectory|database.sdf, Provider: System.Data.SqlServerCe.4.0, Origin: Configuration).
No pending explicit migrations.
Applying automatic migration: 201206130828142_AutomaticMigration.
Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it.
Edit2: データベースを変更したい Player クラス:
public class Player
{
[Key]
public int PlayerID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Surname { get; set; }
public string Nickname { get; set; }
public DateTime Birth { get; set; }
public string PhotoUrl { get; set; }
public string Post { get; set; }
public int TeamID { get; set; }
public virtual Team Team { get; set; }
public int SecondTeamID { get; set; }
public virtual Team SecondTeam { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
チームクラス:
public class Team
{
[Key]
public int TeamID { get; set; }
public string Name { get; set; }
public string League { get; set; }
public string Trainings { get; set; }
public string PhotoUrl { get; set; }
public int CoachID { get; set; }
public int AassistantID { get; set; }
public int ManagerID { get; set; }
public virtual ICollection<Player> Players { get; set; }
public bool showPosts { get; set; }
}
そして、これは EF によって生成された SQL です。
CREATE TABLE "Players" (
"PlayerID" int not null identity,
"Name" nvarchar(4000) not null,
"Surname" nvarchar(4000) not null,
"Nickname" nvarchar(4000) null,
"Birth" datetime not null,
"PhotoUrl" nvarchar(4000) null,
"Post" nvarchar(4000) null,
"TeamID" int not null,
"SecondTeamID" int not null,
"UserId" int not null,
"Team_TeamID" int null,
"Team_TeamID1" int null,
"SecondTeam_TeamID" int null,
PRIMARY KEY ("PlayerID")
);
ALTER TABLE "Players" ADD CONSTRAINT "Team_Players" FOREIGN KEY ("Team_TeamID") REFERENCES "Teams"("TeamID");
ALTER TABLE "Players" ADD CONSTRAINT "Player_Team" FOREIGN KEY ("Team_TeamID1") REFERENCES "Teams"("TeamID");
ALTER TABLE "Players" ADD CONSTRAINT "Player_SecondTeam" FOREIGN KEY ("SecondTeam_TeamID") REFERENCES "Teams"("TeamID");
ALTER TABLE "Players" ADD CONSTRAINT "Player_User" FOREIGN KEY ("UserId") REFERENCES "Users"("UserID") ON DELETE CASCADE;