0
我正在使用實體框架處理ASP.NET MVC應用程序。使遷移和添加這樣的遷移後:通過移植更新實體框架數據庫
public override void Up()
{
DropForeignKey("dbo.PersonModel", "TeamModel_TeamId", "dbo.TeamModel");
DropIndex("dbo.PersonModel", new[] { "TeamModel_TeamId" });
RenameColumn(table: "dbo.PersonModel", name: "TeamModel_TeamId", newName: "TeamModelRefId");
DropPrimaryKey("dbo.PersonModel");
AddColumn("dbo.PersonModel", "IdPerson", c => c.Int(nullable: false, identity: true));
AlterColumn("dbo.PersonModel", "TeamModelRefId", c => c.Int(nullable: false));
AddPrimaryKey("dbo.PersonModel", "IdPerson");
CreateIndex("dbo.PersonModel", "TeamModelRefId");
AddForeignKey("dbo.PersonModel", "TeamModelRefId", "dbo.TeamModel", "TeamId", cascadeDelete: true);
DropColumn("dbo.PersonModel", "PersonId");
}
public override void Down()
{
AddColumn("dbo.PersonModel", "PersonId", c => c.Int(nullable: false, identity: true));
DropForeignKey("dbo.PersonModel", "TeamModelRefId", "dbo.TeamModel");
DropIndex("dbo.PersonModel", new[] { "TeamModelRefId" });
DropPrimaryKey("dbo.PersonModel");
AlterColumn("dbo.PersonModel", "TeamModelRefId", c => c.Int());
DropColumn("dbo.PersonModel", "IdPerson");
AddPrimaryKey("dbo.PersonModel", "PersonId");
RenameColumn(table: "dbo.PersonModel", name: "TeamModelRefId", newName: "TeamModel_TeamId");
CreateIndex("dbo.PersonModel", "TeamModel_TeamId");
AddForeignKey("dbo.PersonModel", "TeamModel_TeamId", "dbo.TeamModel", "TeamId");
}
我得到這樣的錯誤:
錯誤編號:2744,狀態:2,等級:爲表指定的16個
多重身份列'PersonModel'。每個表只允許有一個標識列。
這是我的模型:
public class PersonModel
{
[Key]
public int IdPerson { get; set; }
public string NickName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public int TeamModelRefId { get; set; }
[ForeignKey("TeamModelRefId")]
public virtual TeamModel TeamModel { get; set; }
}
public class TeamModel
{
public TeamModel()
{
TeamMembers = new List<PersonModel>();
this.Tournaments = new HashSet<TournamentModel>();
}
[Key]
public int TeamId { get; set; }
public string TeamName { get; set; }
public virtual ICollection<PersonModel> TeamMembers { get; set; }
public ICollection<TournamentModel> Tournaments { get; set; }
public virtual MatchUpEntryModel MatchupEntry { get; set; }
public virtual MatchUpModel Matchup { get; set; }
}