每当我导航到特定页面然后离开它时,都会删除一些表。此页面与其余页面之间唯一不同的是此页面使用不同的DbContext
. 被删除的表格也是不同的一部分,DbContext
在访问的页面上没有使用。这真的让我着迷,有什么建议吗?
使页面崩溃的控制器是。
public class GenerationController : Controller
{
private GenerationDbContext GenerationDb = new GenerationDbContext();
private string generatedDir = "~/App_Data/Generated";
//
// GET: /Generation/
public ViewResult Index()
{
var viewModel = new GenerationIndexViewModel
{
Generations = GenerationDb.Generations
.OrderByDescending(g => g.GeneratedOn)
.ToList()
};
return View(viewModel);
}
protected override void Dispose(bool disposing)
{
GenerationDb.Dispose();
base.Dispose(disposing);
}
}
更新: 我刚刚意识到我有另一个页面可以访问这两个DbContext
s。出于某种原因,我可以导航到此页面,然后离开而不删除表。只是这一页删除了其他上下文的所有表。
更新: 当我将Index
动作更改为。
public ActionResult Index()
{
return Content("Hello.");
}
我可以在页面和所有其他页面之间导航。没有关于表被删除的错误。因此,我很肯定它必须与模型或数据库上下文有关。哪个是这样。
public class Generation
{
public int Id { get; set; }
[Required]
public DateTime GeneratedOn { get; set; }
[Required, StringLength(4000)]
public string Name { get; set; }
}
public class GenerationDbContext : DbContext
{
public DbSet<Generation> Generations { get; set; }
}
更新: 使用随 VWD 提供的数据库资源管理器,Generations
当我导航到该页面时,会出现该表。当我导航到另一个使用不同数据库上下文的页面时,该Generations
表仍然是唯一的表。啊!