DBContext类ASP.Net MVC

时间:2015-10-06 17:45:41

标签: c# asp.net-mvc entity-framework

我想知道实体框架如何知道要连接到哪个表,基于以下代码:

    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; }
    }

Source

我知道默认情况下它连接到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属性。我是否可以在不破坏anythig的情况下更改其名称,或者框架可能使用此名称来了解要查询的表?

如果我没有将上面的代码添加到Web.config文件,该怎么办?它会根据属性名称自动创建Movies.mdf表吗?

2 个答案:

答案 0 :(得分:0)

如果您使用Code First方法,则可以更改Cells()属性的名称。实体框架使用类名(在本例中为Movies)来计算表名。

默认情况下,它使用以下约定:从类名创建复数并尝试在数据库中查找此类表。

关于数据库名称:即使没有连接字符串,EF也会尝试创建数据库,但它会给它一个不同的名称(例如class Movie)。

答案 1 :(得分:-1)

如果您的数据库已经使用EF进行了创建,则可能会出现错误。因此,请尝试将新命名的类显式映射到表中。