0

移行を完全に壊したと思います。移行フォルダーを削除し、データベースで生成されたテーブルの移行を削除します。なぜ?私はそれらを削除しなければならないものを読んだので、削除します

app_star と EfDbContext のコンストラクターで使用しようとしましたが、今は機能しません

Database.SetInitializer(新しい DropCreateDatabaseIfModelChanges());

これは私のメソッド OnModelCreating modelBuilder.Conventions.Remove(); にあります。

PM> Enable-Migrations-ProjectName EnableAutomaticMigrations Rhld-Force-Verbose を使用してこのエラーが発生します

Enable-Migrations: There is no positional parameter that accepts the argument 'EnableAutomaticMigrations'.
At line: 1 Char: 1
+ Enable-Migrations-ProjectName EnableAutomaticMigrations Rhld-Force-Verbose
+ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
     + CategoryInfo: InvalidArgument: (:) [Enable-Migrations], ParameterBindingException
     + FullyQualifiedErrorId: PositionalParameterNotFound, Enable-Migrations

PM> Update-Database -ProjectName rhld -Verbose -Force を使用

Using StartUp project 'Rhld'.
Specify the indicator '-Verbose' to see the SQL statements that are being applied to the target database.
Not found any migration configuration in assembly 'Rhld'. (In Visual Studio, you can use the command Enable-Migrations of the Package Manager Console to add a migration configuration).

だから私の質問は、私は今何ができるのですか?、私はまだ自分のデータベースを使用したいのですが、別のデータベースにテーブルを作成しようとしましたが、同じエラーが発生することはできません

編集

私の問題は、最初は問題なく機能していたので、名前とテーブルの両方のキーを変更しようとしましたが、できないので、読み取りと削除を開始しました:S

4

1 に答える 1

0

さて、データベースの削除を終了し、

public EfDbContext()
{
    Database.SetInitializer<EfDbContext>(new DropCreateDatabaseIfModelChanges<EfDbContext>());
}

Application_Start で

 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EfDbContext>());

何がトリックだったのかわからない

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}

これを使用すると動作します

Enable-Migrations -EnableAutomaticMigrations -ProjectName rhld -Force
Update-Database -ProjectName rhld -Verbose -Force
于 2013-06-07T21:17:09.517 に答える