特定のページに移動してそこから離れると、いくつかのテーブルが削除されます。このページと残りのページの唯一の違いは、このページでは異なる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
。何らかの理由で、このページに移動して、テーブルを削除せずに終了できます。他のコンテキストのすべてのテーブルを削除するのは、この 1 つのページだけです。
更新: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
テーブルはまだ唯一のテーブルです。ああ!