私は個々のユーザーアカウント認証を持つMVC5プロジェクトを持っています。私は自分で登録したテストを作って、すべてが動作します。そして、テストために、私はApplicationUser
クラスにプロパティを追加しました、今TIは次のようになります。アイデンティティモデルにプロパティを追加し、データベースをマイグレーションする
public class ApplicationUser : IdentityUser
{
public string NewPropery { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
return userIdentity;
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
私は、Visual Studio 2013年のパッケージマネージャコンソールを開き、実行しました:
PM> Enable-Migrations
PM> Add-Migration "NewProperty"
PM> Update-Database
最初の2つのコマンドはうまく行くが、3番目のコマンドに失敗し、これは誤りです:
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
データベースはMVCテンプレートによって作成された通常のLocalDbですが、私は、接続文字列を残しますプロジェクトとして作成されたとき:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-NyProject.Web-20160325120840.mdf;Initial Catalog=aspnet-MyProject.Web-20160325120840;Integrated Security=True"
providerName="System.Data.SqlClient" />
ここでエラーが発生しましたか?
UPDATE 1 - スティーブのコメント
た後、私はプロジェクト「スタートアッププロジェクトは、」これは違うエラーThere is already an object named 'AspNetRoles' in the database.
が生成されます作り、パッケージマネージャコンソールでプロジェクトを選択するために使用します。 これは本当です。既存のテーブルを削除する必要がありますか?自分のデータはどうですか?
まず、接続文字列としてマークされたプロジェクトであることを確認しますスタートアッププロジェクト。詳細を表示するには、update-database -Verboseを実行してください。 –
'データベースには「AspNetRoles」という名前のオブジェクトが既にあります。「彼は私をキディンしていますか?もちろんそうだ。移行前にすべてのテーブルを削除する必要がありますか?私のデータはどうですか? –