2015-12-30 25 views
6

EF 6.1.3 - .NET 4.5でEFコードの最初の移行を設定しようとしています。EF 6 Enable-Migrationsでコンテキストが見つかりません

私のソリューションには複数のプロジェクトがあり、起動プロジェクトはSongbirds.Webです。私はリポジトリ、データベースコンテキスト、および移行を含むSongbirds.Dal.EntityFrameworkという名前のプロジェクトを作成しました。

私は私のコンテキストクラスを作成しました:

namespace Songbirds.Dal.EntityFramework 
{ 
    public class SongbirdsDbContext : IdentityDbContext<ApplicationUser>, IUnitOfWork 
    { 
     public SongbirdsDbContext() 
      : this("name=SongbirdsDBContext") 
     { 
     } 
     ... 
    } 
} 

ソリューション全体がエラーなしで適切に構築します。

私はプロジェクトマネージャコンソールに行くとSongbirds.Dal.EntityFrameworkこととenable-migrationsコマンドを実行するために、デフォルトのプロジェクトを設定して、私は次のエラーを取得:私は以下の結果と明示的コンテキストタイプを指定しようとした

PM> enable-migrations 
No context type was found in the assembly 'Songbirds.Dal.EntityFramework'. 

を:

PM> enable-migrations -ContextTypeName Songbirds.Dal.EntityFramework.SongbirdsDbContext 
The context type 'Songbirds.Dal.EntityFramework.SongbirdsDbContext' was not found in the assembly 'Songbirds.Dal.EntityFramework'. 

SongbirdsDbContextはSongbirds.Dal.EntityFrameworkプロジェクトの一部です。私が間違って行ったことや、それが文脈を認識していない理由は何ですか?

+0

'Web.config'に接続が設定されていますか? –

+0

コンテキストに定義されている接続文字列があります。接続を設定するために何か他に必要なことはありますか? –

+0

わかりませんが、接続文字列は私が「はい」と言っていたものです。ちょうどあなたが実際にそれが正しく設定されていることを確認してください。 –

答えて

1

私は試行錯誤を通じて答えを見つけたと思います。 は、私が最初の代わりにIdentifyDbContextのDbContextクラスから継承するコンテキストクラスに変更:への適切な参照を追加した後

Could not load file or assembly 'Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 

public class SongbirdsDbContext : DbContext 

、次のエラーを見つけるためenable-migrationsコマンドを再実行しました必要なアセンブリによって、私は正常に移行を可能にすることができました。 IdentityDbContextを継承していないのに、DbContextを継承しているのになぜこのエラーが出るのかわかりません。

+0

>> IdentityDbContextを継承していないのに、DbContextから継承したときにこのエラーが表示される理由がわかりません。 これは間違った方向にありますか? –

0

デフォルトプロジェクトがEFコンテキストでプロジェクトに設定されていることを確認してください。

+0

私は、パッケージマネージャコンソールウィンドウでデフォルトプロジェクトを設定しました。これは、SongbirdsDbContextクラスを含むプロジェクトを指しています。 –

+0

私はちょうどあなたの質問を読んで、あなたはすでにそれを言った。私の悪い。 –

+0

説明のため、デフォルトプロジェクトをSongbirds.DalまたはSongbirds.Webに設定しましたか? –

0

だけの問題だったかもしれない最後に.songBirdsContextを追加

enable-migrations -ContextTypeName Songbirds.Dal.EntityFramework 

を実行してみてください。

+0

動作しませんでした。コンテキスト 'Songbirds.Dal.EntityFramework'がアセンブリ 'Songbirds.Dal.EntityFramework'に見つかりませんでした。 –

関連する問題