我不知道实体框架如何知道要连接的表的基础上,下面的代码:的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