No context type found in the assembly. ASP.NET MVC4

你离开我真会死。 提交于 2019-12-08 09:52:42

问题


Was following this tutorial here (wanted a database of customers instead of movies as per tutorial): http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table

However when I attempt to run migrations commands the following error is encountered: "The context type 'MvcCustomer.Models.CustomerDbContext' was not found in the assembly 'MvcVault'."

This is my customer model:

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; }
    }
}

I've tried various combinations of that first migrations command, including:

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

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

Anyway, I'm completely new to all of this and am at a loss. I was able to successfully complete these tutorials when coding up the Movies model following the tutes, and have no idea why its not working if I change the name, etc...

Any help would be appreaciated! Thank you kindly :)


回答1:


You don't have MvcCustomer namespace. From your code it is clear that you are using MvcVault namespace. Change this:

Enable-Migrations -ContextTypeName MvcCustomer.Models.CustomerDbContext

To this:

Enable-Migrations -ContextTypeName MvcVault.Models.CustomerDbContext

And it should work.

Alternatively, you can change MvcVault to MvcCustomer.




回答2:


it is late reply but probably it will help someone in future.

Remove connection strings from Web.config IF they are more than one and not needed. Keep only one. Try running default command in Package Manager Console. like Enable-Migrations OR To use auto migrations use this command Enable-Migrations -EnableAutomaticMigrations.




回答3:


In my project, I spell wrong project name, so according the training document, it can't find the class, try just use

Enable-Migrations -ContextTypeName CustomerDBContext

sometimes VS can search it, if this works, you namespace maybe not following the book



来源:https://stackoverflow.com/questions/19475998/no-context-type-found-in-the-assembly-asp-net-mvc4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!