实体框架启用迁移

本文关键字:迁移 启用 框架 实体 | 更新日期: 2023-09-27 17:57:07

我所有的搜索都回到了两个问题的同一个问题,这不是这个项目的问题。我以前从未遇到过这个问题,但这个特殊的项目很奇怪。

首先,项目名称是 Site .类SiteContext继承DbContext

当我运行启用迁移时,即使是显式的,包管理器控制台也会返回错误:

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,通过数据库的对象访问数据库等。只有"启用迁移"命令找不到它。除此之外,实体的代码优先功能工作正常。

知道会发生什么吗?我在哪里搞砸了?

(实体框架 6.0.2/网页 3.1.1)

实体框架启用迁移

ASP.NET 网页

网站是使用网站项目类型构建的。此项目类型不支持实体框架迁移。如果要对 ASP.NET 网页网站使用代码优先迁移,则需要将数据访问代码开发为单独的类库。该项目类型支持 EF 迁移。我在这里写了一篇关于它的博客:http://www.mikesdotnetting.com/Article/217/Code-First-Migrations-With-ASP.NET-Web-Pages-Sites

而不是 -ContextType,使用 -ProjectName 并指定站点。

编辑:首先,尝试 -ContextTypeName。 我不得不假设你没有。