32

最初にコードで .NET 4.0、MVC3、および EF5 を使用しています。

私のソリューションは、依存関係が示されているように、3 つのプロジェクトに分割されています。

Project.Web -> Project.BLL -> Project.DAL

Project.DAL レイヤーにはエンティティ フレームワーク データ コンテキスト クラスとすべてのエンティティが含まれていますが、スタートアップ プロジェクトは Project.Web であるため、Web.config、接続文字列、および実際の SQL コンパクト データベースが含まれています。

既存のデータを消去せずに EF モデルに新しいテーブルを追加できるように、移行を有効にしようとしています。ただし、「Enable-Migrations」を実行すると、

No context type was found in the assembly 'Project.Web'.

スタートアップ プロジェクトを Project.DAL として設定すると、エラーは次のように変わります。

Could not load assembly 'Project.Web'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)

このエラーが発生する理由、またはそれを修正するために何ができるかを誰かが知っていますか?

4

5 に答える 5

3

同様の投稿を見つけました:別のアセンブリでコンテキストを使用して移行を有効にしますか?

例:

enable-migrations -ContextProjectName MyProject.DBContexts -contexttypename MyProject.DBContexts.MyContextName -Verbose
于 2015-11-02T21:47:19.410 に答える
1

誰が私のようにこの間違いを犯したのか:

コンテキスト クラスはDbContext、次のようにから継承する必要があります。

public class DirectorRequestContext : DbContext
{
    public DbSet<DirectorRequest> DirectorRequests { get; set; }
}
于 2016-11-28T13:15:58.993 に答える
0

何らかの理由で、接続を使用するクラスがプロジェクトにない場合にも発生します。したがって、右クリックして「プロジェクトに追加」すると、それが整理されます。

于 2016-09-22T13:54:57.827 に答える