我想知道实体框架如何知道要连接到哪个表,基于以下代码:
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
属性。我是否可以在不破坏anythig的情况下更改其名称,或者框架可能使用此名称来了解要查询的表?
如果我没有将上面的代码添加到Web.config
文件,该怎么办?它会根据属性名称自动创建Movies.mdf表吗?
答案 0 :(得分:0)
如果您使用Code First方法,则可以更改Cells()
属性的名称。实体框架使用类名(在本例中为Movies
)来计算表名。
默认情况下,它使用以下约定:从类名创建复数并尝试在数据库中查找此类表。
关于数据库名称:即使没有连接字符串,EF也会尝试创建数据库,但它会给它一个不同的名称(例如class Movie
)。
答案 1 :(得分:-1)
如果您的数据库已经使用EF进行了创建,则可能会出现错误。因此,请尝试将新命名的类显式映射到表中。