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表自动基于属性的名称?

DBContext class ASP.Net MVC

如果您使用代码优先的方法,您可以更改Movies属性的名称。实体框架使用类名(在本例中为class Movie)来确定表名。

默认情况下,它使用以下约定:将类名变为复数,并尝试在数据库中找到这样的表。

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

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