Asp.net mvc ASP.Net MVC添加控制器错误

Asp.net mvc ASP.Net MVC添加控制器错误,asp.net-mvc,Asp.net Mvc,当我尝试添加“MOVIES”控制器时,它出错:“生成“MvcMovieSF.Models.MovieDBContext”时出错。尝试重建项目” 我已经重建了该项目,它继续错误。提前感谢 namespace MvcMovieSF.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } public DateT

当我尝试添加“MOVIES”控制器时,它出错:“生成“MvcMovieSF.Models.MovieDBContext”时出错。尝试重建项目

我已经重建了该项目,它继续错误。提前感谢

namespace MvcMovieSF.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet Movies { get; set; }
    }
}

刚刚注意到:我没有坐在自己的计算机旁,我注意到SQLExpress服务没有启动;我没有在这台计算机上启动服务的权限。这可能是原因吗?

在ASP.NET MVC 4中添加新控制器时,我遇到了同样的问题,我通过移动
Database.SetInitializ解决了这个问题er(新的SomeDataContextInitializer())
来自Global.asax.cs中DBContext to Application_Start方法的构造函数。希望有帮助。

添加控制器也会修改您的上下文类。如果您已经实现了
部分类
将一些业务规则添加到您的上下文中,则框架无法成功编辑您的部分类以找到正确的点它自己的插入

不过,删除业务规则可能会有帮助。创建控制器后,您可以将其放回原处

(至少,这对我来说是有效的,10分钟前…)

编辑:

上下文类的部分实现方式如下:

public partial class MyDatabaseEntities : DbContext
{
    public override int SaveChanges() { ... }

    #region Some Business Rules Here 
    ...
    #endregion
}
在这里,如果尝试添加新控制器,将失败并出现错误:“生成“MyDatabaseEntities”时出错。”。尝试重建您的项目。“ 重建也不会有任何帮助

我的解决办法是:

  • 删除这些业务规则像这样,当然要将它们放在安全的地方,因为以后可能需要它们:

    public partial class MyDatabaseEntities : DbContext
    {
        public override int SaveChanges() { ... }
    }
    
  • 创建你的控制器。这次你应该成功了

  • 从上下文类中删除框架添加的代码:

    public partial class MyDatabaseEntities : DbContext
    {
        public override int SaveChanges() { ... }
    
        public DbSet<MyModelClass> MyModelClass { get; set; }  // remove this line
    }
    
    公共部分类MyDatabaseEntities:DbContext { 公共覆盖int SaveChanges(){…} public DbSet MyModelClass{get;set;}//删除此行 }
  • 把商业规则放回去


  • 希望这有帮助。

    @Bolt Thunder让我走上了正确的道路。在我的例子中,DbContext类被修改为有IDbSet进行测试,这就实现了。更改了-问题解决了。

    我的项目名为MVC,我有这个类

     public class download
            {
    
                public  int download_id { get; set; }
                public  int download_category_id { get; set; }
                public  string download_name { get; set; }
                public  int download_size { get; set; }
                public  string download_description { get; set; }
                public  string download_path { get; set; }
                public  download_category download_category { get; set; }
            }
    
            public class download_category
            {
    
                public  int download_category_id { get; set; }
                public  string download_category_name { get; set; }
            }
    
            public class DownloadDbContext : DbContext
            {
                public DbSet<download> downloads { get; set; }
                public DbSet<download_category> download_categorys { get; set; }
            }
    

    使用系统;
    使用System.Collections.Generic;
    使用System.Linq;
    使用System.Web;
    使用System.Data.Entity;
    名称空间MVC.Models
    {
    公共类DownloadDbContext:DbContext
    {
    公共数据库集下载{get;set;}
    公共数据库集下载_分类{get;set;}
    }
    }
    
    我遇到了与Susan相同的问题。在我的例子中,在上下文类中指定DbSet(
    公共DbSet Movies
    )的模型类型修复了这个问题。
    我正在使用VS 2012,并将Entity Framework 5.0包添加到解决方案中。

    此解决方案在Visual Studio 2013预览版中仍然有效。我只是在计划放置扩展的项目中添加了一个空的公共部分类MyDatabaseEntites:DbContext。临时删除部分类修复了它。是的,这是我的问题。希望t错误信息说明了为什么它不起作用。我只是把所有的部分内容都转移到扩展方法。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using MVC.Models;
    using System.ComponentModel.DataAnnotations;
    
    
    namespace MVC.Models
    
    {
    
    
        public class Download
        {
            [Key]
            public int download_id { get; set; }
            public int download_category_id { get; set; }
            public string download_name { get; set; }
            public int download_size { get; set; }
            public string download_description { get; set; }
            public string download_path { get; set; }
            public Download_category download_category { get; set; }
        }
    
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    
    namespace MVC.Models
    
    {
    
            public class Download_category
            {
                [Key]
                public int download_category_id { get; set; }
                public string download_category_name { get; set; }
            }
    
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    
    namespace MVC.Models
    
    {
    
            public class DownloadDbContext:DbContext 
           {
            public DbSet<Download> downloads { get; set; }
            public DbSet<Download_category> download_categorys { get; set; }
           }
    
    }