3

Visual Studio 2012 NuGet パッケージ マネージャー コンソールを使用して新しいデータベースを作成しようとしています。移行を有効にするためのすべての手順を実行し、Migrations フォルダーが正常に作成され、その構成クラスが次のように定義されました。

internal sealed class Configuration : DbMigrationsConfiguration<MyMVC4Project.Infrastructure.CategoryDb>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(MyMVC4Project.Infrastructure.CategoryDb context)
    {
        context.Categories.AddOrUpdate(d => d.Name,
            new Department() {Name = "dishes"},
            new Department() {Name = "Appliances"},
            new Department() {Name = "furniture"}
            );
    }
}

PM> update-database -Verbose

その時点で、エラーメッセージが表示されます:

Using StartUp project 'MyMVC4Project'.
Using NuGet project ' MyMVC4Project '.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'MyMVC4Project.Infrastructure.CategoryDb' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
No pending code-based migrations.
Running Seed method. 

次に、App_dataフォルダーにデータベースが作成されません。SQL ExpressデータベースではなくlocalDbデータベースが見つかると予想されます。インストールされたSQL Expressインスタンスには「SQLExpress」とは異なる名前が付けられ、web.configではデフォルトの接続文字列がポイントしますlocalDB インスタンスに。

どうすればこの問題を解決できますか?

4

1 に答える 1

0

何らかの理由で、sqlServer からデータベースを表示できないかどうかはわかりませんが、データベースを暗黙的にヒットしなかったため、データベースは作成されていません。DB.SaveChanger(); を実行する必要があります。または、他の方法でコード内のデータベースにヒットします。

于 2013-05-18T13:49:22.657 に答える