C# 无效的对象名称,即使该对象是有效的
我有一个单元测试的结果。当我运行单元测试时,它在C# 无效的对象名称,即使该对象是有效的,c#,asp.net-mvc,entity-framework,unit-testing,C#,Asp.net Mvc,Entity Framework,Unit Testing,我有一个单元测试的结果。当我运行单元测试时,它在db.SaveChanges()处中断操作结果的一部分。当我测试实际的方法时(通过web浏览器和数据库中的数据),它是好的,但是当我运行单元测试时它失败了。我收到的错误是:用户代码未处理DbUpdateException。请参阅内部异常,内部异常:{“无效的对象名称'dbo.Projects'。} 我正在使用entityframeworks codefirst结构,下面是我的代码: [ValidateAntiForgeryToken] [Autho
db.SaveChanges()处中断代码>操作结果的一部分。当我测试实际的方法时(通过web浏览器和数据库中的数据),它是好的,但是当我运行单元测试时它失败了。我收到的错误是:用户代码未处理DbUpdateException。请参阅内部异常,内部异常:{“无效的对象名称'dbo.Projects'。}
我正在使用entityframeworks codefirst结构,下面是我的代码:
[ValidateAntiForgeryToken]
[Authorize(Roles = "A")]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddProject(Projects project)
{
if (ModelState.IsValid)
{
using (var db = new MyDbContext())
{
db.ProjectModels.Add(project);
db.SaveChanges();
}
return RedirectToAction("ListOfProjects", "Project");
}
return View(project);
}
[TestMethod()]
public void AddProjectTestWithModl()
{
var controller = new AdminController();
var model = new Projects() { Name = "Name", Description = "Desc", Duration = "1 month" };
var result = controller.AddProject(model) as ViewResult;
Assert.AreEqual(model, result.ViewData.Model);
}
无效的对象名称“dbo.Projects”。是sql server的异常。这意味着dbo架构中不存在表
检查您是否连接到正确的数据库,以及迁移是否已运行。我的数据库中确实存在此问题,并且架构正确。如果我通过controllers actionresult方法设置断点,那么只有当我运行单元测试时,它才会正常工作,不会给出错误。我觉得单元测试或EF可能对我的dbcontext模型做了什么?检查测试项目中app.config中的连接字符串