Вопрос о консоли диспетчера пакетов Entity Framework - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть 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");
    }
}

1 Ответ

0 голосов
/ 10 сентября 2018

Посмотрите на Миграция на основе кода в Entity Framework 6 .

Теперь вам нужно создать класс миграции с помощью команды Add-Migration с именемваш класс миграции, как показано ниже.

enter image description here

После создания файла миграции с помощью команды add -igration вы должныобновить базу данных.Выполните команду Update-Database, чтобы создать или изменить схему базы данных.Используйте параметр –verbose для просмотра операторов SQL, применяемых к целевой базе данных.

enter image description here

На этом этапе база данныхбудет создан или обновлен.Теперь при каждом изменении классов домена выполните Add-Migration с параметром name, чтобы создать новый файл миграции, а затем выполните команду Update-Database, чтобы применить изменения к схеме базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...