首先用实体框架代码创建数据库

本文关键字:代码 创建 数据库 框架 实体 | 更新日期: 2023-09-27 18:13:03

我偶然发现了一个问题,我想先使用实体框架的代码创建一个数据库。在最近的项目中,我没有使用EF成功连接到我的数据库,但现在有些问题。

我创建了我的app.config文件,内容如下:

 <connectionStrings>
<add name="HomeCinema" 
     connectionString="Data Source= {MY SERVER NAME IN MSSQL};Initial
     Catalog=HomeCinema;Integrated Security=SSPI; MultipleActiveResultSets=true" 
     providerName="System.Data.SqlClient" />

我假设数据源将包含我在SQL Server上登录的内容。

当我尝试用项目中的类创建数据库时,我使用update-database -verbose在包管理器控制台中创建它,并以正确的项目为目标。

在这里,当我使用update-database -verbose时,它说:目标数据库是:'HomeCinema'(数据源:.'SQLEXPRESS,提供程序:System.Data。SqlClient, Origin: Convention)

这里的数据源与我在App.config文件中指定的不同。我想肯定有什么地方不对,但就是想不出来。

我以前没有这样做过,这对我来说是一个未知的领域,我希望解决,但似乎不明白为什么会发生这种情况,也不知道如何解决。

希望我已经清楚地描述了这件事,但请询问是否有什么遗漏。

如果我能收到一些指导方针或一些提示如何解决这个问题,或者如果有另一种方法去创建数据库,我将非常感激。

My DbContext类:

public class HomeCinemaContext : DbContext
{
    public HomeCinemaContext() 
        : base("HomeCinema")
    {
        Database.SetInitializer<HomeCinemaContext>(null);
    }
    #region Entity Sets 
    public IDbSet<User> UserSet { get; set; }
    public IDbSet<Role> RoleSet { get; set; }
    public IDbSet<UserRole> UserRoleSet { get; set; }
    public IDbSet<Customer> CustomerSet { get; set; }
    public IDbSet<Movie> MovieSet { get; set; }
    public IDbSet<Genre> GenreSet { get; set; }
    public IDbSet<Stock> StockSet { get; set; }
    public IDbSet<Rental> RentalSet { get; set; }
    public IDbSet<Error> ErrorSet { get; set; }
    #endregion

首先用实体框架代码创建数据库

如果您有两个项目,假设一个类库和一个引用它的Web应用程序。您需要添加从app.config到web的连接。

当你用包管理器控制台瞄准类库时,你告诉VS寻找在该程序集中定义的DbContext,但是连接字符串来自主Web应用程序。