DBContext class ASP.Net MVC
本文关键字:MVC Net ASP class DBContext | 更新日期: 2023-09-27 18:16:30
我想知道实体框架如何知道连接到哪个表,基于以下代码:
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
文件呢?它会创造一个电影吗?MDF表自动基于属性的名称?
如果您使用代码优先的方法,您可以更改Movies
属性的名称。实体框架使用类名(在本例中为class Movie
)来确定表名。
默认情况下,它使用以下约定:将类名变为复数,并尝试在数据库中找到这样的表。
关于数据库名称:EF将尝试创建一个数据库,即使没有连接字符串,但它会给它一个不同的名称(例如WebApplication1.MovieDBContext
)。
如果您已经使用EF创建了数据库,则可能会出现错误。因此,请尝试将新命名的类显式地映射到表。