因此,由于MySQL中的一个错误导致Visual Studio崩溃了创建向导(否则会允许数据库中的Code First),我不得不手动创建模型,然后执行“添加控制器”引用{ {1}}和WWUpdated
。但是,我的控制器中的特定行导致了我的问题:
WWUpdatedDBContext
类型的例外 发生'System.Data.Entity.Core.EntityCommandExecutionException' EntityFramework.dll但未在用户代码中处理
附加信息:执行命令时发生错误 定义。有关详细信息,请参阅内部异常。
内部异常:
{“表'mydb.wwupdateds'不存在”}
事实上,那张桌子不存在。它以return View(db.WWUpdatedSet.ToList());
存在。那么如何更改我的代码以便它查找mydb.ww_updated
呢?我猜我何时创建控制器EF只是将“s”附加到模型名称,这不是我想要的。我已经尝试搜索我的整个解决方案'mydb.wwupdateds'并且空白,所以我不知道在哪里/如何更改它以引用正确的表名。
对于我的控制器的参考部分:
mydb.ww_updated
型号:
public class WWUpdatedSetController : Controller
{
private WWUpdatedDBContext db = new WWUpdatedDBContext();
// GET: WWUpdatedSet
public ActionResult Index()
{
return View(db.WWUpdatedSet.ToList());
}
}
答案 0 :(得分:1)
您未明确将实体类WWUpdated
映射到数据库中的表。因此,默认情况下,它使用复数表名的代码优先约定。这意味着它将查找WWUpdateds
表而不是ww_updated
表。因此,您必须使用Table
注释或流畅的api来明确映射表:
[Table("ww_updated")]
public class WWUpdated
{
//...
}
或流利的api:
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<WWUpdated>().ToTable("ww_updated");
}