我偶然发现了一个问题,我想先使用Entity Framework代码创建数据库。在最近的项目中,我没有使用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在Package Manager控制台中创建它,并且我定位正确的项目。
这里说当我使用update-database -verbose: 目标数据库是:&#39; HomeCinema&#39; (DataSource:。\ SQLEXPRESS,Provider:System.Data.SqlClient,Origin:Convention)
这里的DataSource与我在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
答案 0 :(得分:0)
如果您有两个项目,那么我们假设一个类库和一个引用它的Web应用程序。您需要将app.config中的连接添加到Web应用程序中的web.config。
使用程序包管理器控制台定位类库时,您要告诉VS查找该程序集中定义的DbContext,但连接字符串来自主Web应用程序。