在程序集中找不到上下文类型.ASP.NET MVC4

本文关键字:类型 ASP NET MVC4 上下文 找不到 程序 程序集 集中 | 更新日期: 2023-09-27 18:36:03

在这里遵循本教程(想要一个客户数据库而不是根据教程的电影):http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table

但是,当我尝试运行迁移命令时,遇到以下错误:"在程序集'MvcVault'中找不到上下文类型'MvcCustomer.Models.CustomerDbContext'。

这是我的客户模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcVault.Models
{
    public class Customer
    {
        public int ID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime Born { get; set; }
        public int Telephone { get; set; }
        public string Email { get; set; }
    }
    public class CustomerDBContext : DbContext
    {
        public DbSet<Customer> Customers { get; set; }
    }
}

我已经尝试了第一个迁移命令的各种组合,包括:

"Enable-Migrations -ContextTypeName MvcCustomer.Models.CustomerDbContext"

"Enable-Migrations -ContextTypeName MVCCustomer.Models.CustomerDbContext"

无论如何,我对这一切完全陌生,不知所措。在按照 tutes 编写电影模型时,我能够成功完成这些教程,并且不知道为什么如果我更改名称等它不起作用......

任何帮助都会得到赞赏!谢谢你:)

在程序集中找不到上下文类型.ASP.NET MVC4

您没有 MvcCustomer 命名空间。从您的代码中可以清楚地看出您使用的是 MvcVault 命名空间。更改此设置:

Enable-Migrations -ContextTypeName MvcCustomer.Models.CustomerDbContext

对此:

Enable-Migrations -ContextTypeName MvcVault.Models.CustomerDbContext

它应该有效。

或者,您可以将 MvcVault 更改为 MvcCustomer。

回复

晚了,但将来可能会帮助某人。

如果连接字符串有多个且不需要,请从 Web.config 中删除连接字符串。只保留一个。尝试在程序包管理器控制台中运行默认命令。喜欢Enable-Migrations或要使用自动迁移,请使用以下命令Enable-Migrations -EnableAutomaticMigrations

在我的项目中,我拼错了项目名称,所以根据训练文档,它找不到类,请尝试使用

Enable-Migrations -ContextTypeName CustomerDBContext

有时VS可以搜索它,如果这有效,您的命名空间可能没有遵循这本书