我不知道實體框架如何知道要連接的表的基礎上,下面的代碼:的DbContext類ASP.Net MVC
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
我知道,在默認情況下它連接到的LocalDB 。我可以指定該數據庫中添加一個條目來連接到Web.config
文件,像這樣:
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
現在,MovieDBContext類有一個Movies
屬性。我可以改變它的名字而不破壞任何事件嗎?或者這個名字被框架用來知道要查詢哪個表?
如果我沒有將以上代碼添加到Web.config
文件中,該怎麼辦?它會根據屬性的名稱自動創建一個Movies.mdf表嗎?
EF連接到數據庫,而不是表格。在名爲「Movies」的數據庫中,您將擁有一個名爲Movie的表格,因爲您有一個DbSet。名稱電影可以改變,如果你喜歡,但那是慣例。 –
表名應該是實體名稱的插件。表'汽車'包含'汽車'實體。所以電影表將被創建。我希望這是你的意思。 – user107986
@Steve Greene:默認情況下,EF使用'PluralizingTableNameConvention',所以表名將是「Movies」 – Vova