gpt4 book ai didi

asp.net-mvc - ASP.Net MVC 添加 Controller 错误

转载 作者:行者123 更新时间:2023-12-03 03:00:37 25 4
gpt4 key购买 nike

当我尝试添加“MOVIES” Controller 时,出现错误:“生成“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 服务尚未启动;我无权在此计算机上启动该服务。难道是这个原因吗?

最佳答案

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

不过,愚蠢的是,删除业务规则可能会有所帮助。创建 Controller 后,您可以将它们放回去。

(至少,这对我有用,10 分钟前......)

编辑:

Context 类可能会像这样部分实现:

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

#region Some Business Rules Here
...
#endregion
}

在这里,如果您尝试添加新 Controller ,则会失败并显示错误:“生成“MyDatabaseEntities”时出错。请尝试重建您的项目。”重建根本没有帮助......

我的解决方案是:

  1. 像这样删除这些业务规则,当然,请将它们保存在安全的地方,因为以后您可能会需要它们:

    public partial class MyDatabaseEntities : DbContext
    {
    public override int SaveChanges() { ... }
    }
  2. 创建您的 Controller 。这次你应该会成功。

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

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

    public DbSet<MyModelClass> MyModelClass { get; set; } // remove this line
    }
  4. 放回业务规则。

希望这有帮助。

关于asp.net-mvc - ASP.Net MVC 添加 Controller 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com