0

最近、MVC 4 アプリケーションを再構築しましたが、データベースが初期化されていないという問題に直面しています。

Global.asax では、最初の起動時に次のように初期化子を呼び出しています。

Database.SetInitializer<MyContext>(new MyInitializer());
new MyContext().Portfolios.Find(1);
new MyContext().UserProfiles.Find(1);

MyInitializer には小さなシード メソッドが含まれています。

public class MyInitializer : CreateDatabaseIfNotExists<MyContext>
{
    protected override void Seed(MyContext context)
    {
 ...

Initializer と Context は、Global.asax で参照する名前空間 .DAL にあります。データベースが空で、作成されることを期待しますが、作成されません。

Initializer がまったく呼び出されていないようです.. Initializer を DropCreateDatabaseAlways に設定しても違いはありませんが、その理由はわかりません。アイデアや良いリンクはありますか?

4

1 に答える 1

0

私の質問で申し訳ありません...回答に必要な情報が含まれていませんでした。プロジェクトを再構築したと言ったとき、代わりに、以前は継承がなかったところに多くの継承を追加したと書くべきでした。OnModelCreating のエントリ modelBuilder.Entity(); のようです。MVC がそのエンティティを含まれていると見なすために必要です。

于 2013-05-29T13:37:02.373 に答える