梁风有信

梁风有信
  首页  :: 联系 :: 管理

No context type was found in the assembly--------MVC

Posted on 2013-03-21 01:05  梁风有信  阅读(6539)  评论(0编辑  收藏  举报

项目安装了NuGet后,也执行了安装EF,

NuGet 命令:

NuGet
PM> install-package entityframework
已安装“EntityFramework 5.0.0”。
MvcStudy 已具有对“EntityFramework 5.0.0”的引用。

当执行enable migration的时候,出现了错误:

NuGet
PM> enable-migrations
No context type was found in the assembly 'MvcStudy'.

找了网上,没有找到答案,想想根据错误信息,肯定是数据库问题,开始找了:

1.连接字符串,在Web.Config里面有啊

2.DB数据文件,还没有产生

3.错误信息中提到的No Context,应该是EF连接数据库的Context吧

想想,刚刚新建了Class(MOdel),没有什么Context啊,那DB的Context应该在哪创建呢,

先创建Controller吧,

习惯的一路选,咦,这个是什么呢?“数据上下文类”?什么来的,看看有什么可以选的,

啊,有“新建上下文类”哦,

玩玩看,随便起一下名字吧,

添加完成后,可以看到在Model里面多了一个DBContext的文件哦,看起来,很像是连接DB的东东了。

这样,Context有了,应该Enable可以了吧,试下,

NuGet
PM> enable-migrations
正在检查上下文的目标是否为现有数据库...
检测到使用数据库初始值设定项创建的数据库。已搭建与现有数据库对应的迁移“201303201607365_InitialCreate”的基架。若要改用自动迁移,请删除 Migrations 文件夹并重新运行指定了 -EnableAutomaticMigrations 参数的 Enable-Migrations。
已为项目 MvcStudy 启用 Code First 迁移。
PM> add-migration initial
正在为迁移“initial”搭建基架。
此迁移文件的设计器代码包含当前 Code First 模型的快照。在下一次搭建迁移基架时,将使用此快照计算对模型的更改。如果对要包含在此迁移中的模型进行其他更改,则您可通过再次运行“Add-Migration 201303201609346_initial”重新搭建基架。
PM> update-database
指定“-Verbose”标记以查看应用于目标数据库的 SQL 语句。
正在应用基于代码的迁移: [201303201609346_initial]。
正在应用基于代码的迁移: 201303201609346_initial。
正在运行 Seed 方法。

果然可以了,

谢天谢地,睡去了....

 备注一下NuGet命令:

NuGet
1 install-package entityframework
2 
3 enable-migrations
4 
5 add-migration initial
6 
7 update-database