У меня есть EF 5, и я добавил следующую таблицу, и она успешно добавлена, как показано в фрагменте кода # 1. Однако я хочу, чтобы UserID был внешним ключом, который ссылается на таблицу Users , и если бы я это сделал, мой код выглядел бы как фрагмент кода # 2.
Не удаляя эту новую таблицу, подскажите, пожалуйста, как я могу сделать UserID внешним ключом, который ссылается на таблицу Users. Огромное спасибо. Для этого я использую Консоль диспетчера пакетов .
Фрагмент кода # 1
public partial class Initialignorechanges : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Favorite",
c => new
{
ID = c.Int(nullable: false, identity: true),
UserID = c.Int(nullable: false),
UserName = c.String(nullable: true, maxLength: 25, unicode: false),
FavoritedUserID = c.Int(nullable: false),
FavoritedUserName = c.String(nullable: true, maxLength: 25, unicode: false),
FavoritedDate = c.DateTime(),
ShowToUser = c.Boolean(nullable: false),
ShowToFavoritedUser = c.Boolean(nullable: false),
})
.PrimaryKey(t => t.ID);
}
public override void Down()
{
DropTable("dbo.Favorite");
}
}
Фрагмент кода # 2:
public partial class Initialignorechanges : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Favorite",
c => new
{
ID = c.Int(nullable: false, identity: true),
UserID = c.Int(nullable: false),
UserName = c.String(nullable: true, maxLength: 25, unicode: false),
FavoritedUserID = c.Int(nullable: false),
FavoritedUserName = c.String(nullable: true, maxLength: 25, unicode: false),
FavoritedDate = c.DateTime(),
ShowToUser = c.Boolean(nullable: false),
ShowToFavoritedUser = c.Boolean(nullable: false),
})
.PrimaryKey(t => t.ID)
.ForeignKey("dbo.Users", t => t.UserID, cascadeDelete: true)
.Index(t => t.UserID);
}
public override void Down()
{
DropIndex("dbo.Favorite", new[] { "UserID" });
DropForeignKey("dbo.Favorite", "UserID", "dbo.Users");
DropTable("dbo.Favorite");
}
}