首先用实体框架代码创建数据库
本文关键字:代码 创建 数据库 框架 实体 | 更新日期: 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应用程序。