我的所有搜索都回到了两个问题中的同一个问题,这不是本项目中的问题。我之前从未遇到过这方面的麻烦,但这个特别的项目很奇怪。
首先,项目名称为Site
。课程SiteContext
继承DbContext
。
当我运行Enable-Migrations时,即使是显式的,程序包管理器控制台也会返回错误:
PM> Enable-Migrations -ContextType SiteContext
The context type 'SiteContext' was not found in the assembly 'Site'.
但它正好在代码中:
// Not in a namespace or anything
public class SiteContext : DbContext {
// public DbSets in here
}
我可以在我网站的代码中的任何地方使用SiteContext
,通过它的对象访问数据库等等。只有Enable-Migrations命令找不到它。除此之外,Entity的代码优先功能正常运行。
任何想法可能会发生什么?我把它搞砸了?
(Entity Framework 6.0.2 /网页3.1.1)
答案 0 :(得分:2)
ASP.NET网页站点是使用“网站”项目类型构建的。此项目类型不支持实体框架迁移。如果要将代码优先迁移与ASP.NET网页站点一起使用,则需要将数据访问代码开发为单独的类库。该项目类型确实支持EF迁移。我在这里写了博客:http://www.mikesdotnetting.com/Article/217/Code-First-Migrations-With-ASP.NET-Web-Pages-Sites
答案 1 :(得分:0)
使用-ProjectName和Specify Site,而不是-ContextType。
编辑:首先,尝试-ContextTypeName。我必须假设你没有。