2012-02-02 3 views
0

私は最初にコードを使用しています。私はenviernmentを設定して、すべてがうまくいきました。問題は私が後で来て、新しいクラス(Foo)を追加する必要があったことです。エンティティフレームワークコードfirst - 新しいクラスを追加できない

public class NorthwindContext : DbContext 
{ 
    public DbSet<Customer> Customers { get; set; } 
    ... 
    public DbSet<Foo> Foos { get; set; } // added 
} 

public class Foo // added 
{ 
    public string FooID { get; set; } 
    public int Payload { get; set; } 
} 

public class Customer 
{ 
... 

ただし、サービス参照を更新しようとすると、エラーが発生します。私が取り出した場合

public DbSet<Foo> Foos { get; set; } 

生成されたコードにはFoosがありません。私は何が欠けているのですか?

+2

エラーは何ですか? –

+0

メタデータには解決できない参照が含まれています:... – foo

答えて

0

問題を解決するオプションはほとんどありません。あなたの状況に含まれているIncludeMetadataConventionを削除します。データベースを手動で削除します。

public class NorthwindContext : DbContext 
{ 
    public DbSet<Customer> Customers { get; set; } 

    public DbSet<Foo> Foos { get; set; } 

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

     base.OnModelCreating(modelBuilder); 
    } 
} 

または、プログラムのエントリポイントにイニシャライザを設定します。

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

最後のオプションはまだベータ版ですCode First Migrationsを使用することです。