我遇到了一个问题,想要使用Entity Framework的Code First来创建数据库。在最近的项目中,我成功地使用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" />
我认为“Data Source”应该包含我在SQL Server上登录时使用的信息。
当我尝试使用项目中的类创建数据库时,我使用“update-database -verbose”在程序包管理器控制台中创建它,并且针对正确的项目。这里说当我使用“update-database -verbose”: 目标数据库是:“HomeCinema”(数据源:.\SQLEXPRESS,提供程序:System.Data.SqlClient,来源:约定)
这里的数据源与我在App.config文件中指定的不同。我认为有些地方出了问题,但就是无法找到原因。
我以前没有用过这种方法,这对我来说是未知的领域,希望能解决,但似乎无法理解为什么会发生这种情况或如何解决它。
希望我已经清楚地描述了问题,但如果有遗漏的地方,请问一下。
如果能给我一些解决此问题的指导或提示,或者有另一种创建数据库的方法,我将不胜感激。
我的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