我无法使用 Entity Framework 6.1.2 迁移指定数据库名称
I can't specify the database name with Entity Framework 6.1.2 migrations
这是我所做的(我想创建一个列表,但 SO 有问题,并且出于某种原因,代码在列表项之后不起作用):
我为我的模型创建了一个新的 class 库。
我添加了对 Entity Framework 和 ASP.NET Identity.Created 用户 class.. 的引用(请参阅我指定的连接字符串名称):
public class ApplicationUser : IdentityUser
{
}
我创建了一个 IdentityDbContext<>
这样的:
public class UserHubContext : IdentityDbContext<ApplicationUser>
{
public UserHubContext() : base("DefaultConnection", throwIfV1Schema: false)
{
}
}
我这样指定连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=MyProjectDb;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
我运行enable-migrations
.
我运行add-migration initial
.
我运行update-database
.
结果(没有使用我指定的数据库):
Target database is: 'aspnet-MyProject-20150119082112' (DataSource: (LocalDb)\v11.0, Provider: System.Data.SqlClient, Origin: Configuration).
这真的很奇怪,因为我明确表示连接字符串应该是 DefraultConnection
所以它应该使用 MyProjectDb
作为数据库。
我错过了什么?
简直不敢相信
我的解决方案中有两个项目。 MyProject
和 MyProject.Model
。只有第二个具有正确的连接字符串。我显然是 运行 MyProject.Model
上的 Nuget PowerShell 命令...但它正在寻找 MyProject
上的连接字符串。明显是bug。
在我再次卸载 MyProject
和 运行 完全相同的命令后。一切正常。
这是我所做的(我想创建一个列表,但 SO 有问题,并且出于某种原因,代码在列表项之后不起作用):
我为我的模型创建了一个新的 class 库。
我添加了对 Entity Framework 和 ASP.NET Identity.Created 用户 class.. 的引用(请参阅我指定的连接字符串名称):
public class ApplicationUser : IdentityUser
{
}
我创建了一个 IdentityDbContext<>
这样的:
public class UserHubContext : IdentityDbContext<ApplicationUser>
{
public UserHubContext() : base("DefaultConnection", throwIfV1Schema: false)
{
}
}
我这样指定连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=MyProjectDb;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
我运行enable-migrations
.
我运行add-migration initial
.
我运行update-database
.
结果(没有使用我指定的数据库):
Target database is: 'aspnet-MyProject-20150119082112' (DataSource: (LocalDb)\v11.0, Provider: System.Data.SqlClient, Origin: Configuration).
这真的很奇怪,因为我明确表示连接字符串应该是 DefraultConnection
所以它应该使用 MyProjectDb
作为数据库。
我错过了什么?
简直不敢相信
我的解决方案中有两个项目。 MyProject
和 MyProject.Model
。只有第二个具有正确的连接字符串。我显然是 运行 MyProject.Model
上的 Nuget PowerShell 命令...但它正在寻找 MyProject
上的连接字符串。明显是bug。
在我再次卸载 MyProject
和 运行 完全相同的命令后。一切正常。