当我尝试添加"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; }
}
}
Run Code Online (Sandbox Code Playgroud)
只是注意: 我没有坐在我自己的电脑上,我注意到SQLExpress服务没有启动; 我没有在此计算机上获得启动服务的权限.这可能是原因吗?
添加控制器还会修改上下文类.如果已实现partial class在上下文中添加一些业务规则,则框架无法成功编辑部分类以查找其自身插入的正确点.
但是,愚蠢的是,删除业务规则可能会有所帮助.创建控制器后,您可以将它们放回原处.
(至少,这对我有用,10分钟前...)
编辑:
Context类可能部分实现如下:
public partial class MyDatabaseEntities : DbContext
{
public override int SaveChanges() { ... }
#region Some Business Rules Here
...
#endregion
}
Run Code Online (Sandbox Code Playgroud)
在这里,如果您尝试添加新控制器,则会因错误而失败:"生成'MyDatabaseEntities'时出错.请尝试重建项目." 重建根本无济于事......
我的解决方案是:
当然,请删除这些业务规则,将它们保存在安全的地方,因为之后您可能需要它们:
public partial class MyDatabaseEntities : DbContext
{
public override int SaveChanges() { ... }
}
Run Code Online (Sandbox Code Playgroud)创建您的控制器.你这次应该成功.
从上下文类中删除框架添加的代码:
public partial class MyDatabaseEntities : DbContext
{
public override int SaveChanges() { ... }
public DbSet<MyModelClass> MyModelClass { get; set; } // remove this line
}
Run Code Online (Sandbox Code Playgroud)放回业务规则.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
7201 次 |
| 最近记录: |