我是Visual Studio和.NET的全新產品,我正在關注this tutorial on Lynda(使用實體框架進行代碼優先開發)來創建ASP。 NET MVC應用程序,我應該能夠使用表單將Tour對象添加到數據庫。Visual Studio中的實體框架:數據庫不是用DbContext基礎構造函數創建的
我創建了一個繼承自DbContext
的類MyDbContext
。
我已經添加了一個基類構造函數,其中需要爲此應用程序創建的數據庫的名稱,當從窗體提交信息時。我還添加了一個名爲Tours
的DbSet
,它包含旅遊對象。
這裏是一個代碼,在MyDBContext.cs:
public class MyDBContext : DbContext
{
public MyDBContext() : base("ExploreCalifornia")
{
}
public DbSet<Tour> Tours { get; set; }
}
在遊歷控制器,我創建了一個名爲db
的MyDbContext
一個實例:
private MyDBContext db = new MyDBContext();
我有一個Create
頁包含添加新導覽的表單,以下是此頁的POST路線:
[HttpPost]
public ActionResult Create(Tour tour)
{
try
{
db.Tours.Add(tour);
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
繼調試器之後,當我嘗試添加新的巡視路線時,它跳過SaveChanges
一行,直接進入catch塊。沒有創建數據庫,並且在解決方案資源管理器中沒有任何內容顯示在App_Data下。
本教程提到將使用SQL Server Express LocalDB創建數據庫,但在服務器瀏覽器中看不到任何對LocalDB的引用。這仍然是新的,所以我對如何解決這個問題有點遺憾。
任何想法可能會出錯或從哪裏開始尋找?
您可以添加您收到的異常消息嗎? –
將'catch {'轉換爲'catch(Exception ex){'並在'return View();'上設置一個斷點'' - 然後您應該對實際問題有一些細節 - 目前您無法知道發生了什麼事情。 –