私は単純なプロジェクトを実装するためにASP.NET MVC 5フレームワークを使用しています。そのプロジェクトでは、アイデンティティ・フレームワーク・テーブル(ユーザー、ロールなど)とカスタマイズされたテーブル(学生、家主など)を使用したいと思います。無効なオブジェクト名を取得せずにIdentity Frameworkのテーブルとカスタムテーブルを作成する方法
私はまたそれゆえ、私は私のホームコントローラに以下の機能を追加した、いくつかの値を持つテーブルを初期化したいと思います:
public void PopulateAspNetTables()
{
context = new ApplicationDbContext();
// Define Users and insert them to IF database :
// **********************************************
var passwordHash = new PasswordHasher();
string password = passwordHash.HashPassword("[email protected]");
ApplicationUser user1 = new ApplicationUser
{
UserName = "user1",
Email = "[email protected]",
PasswordHash = password
};
context.Users.AddOrUpdate(user1);
context.SaveChanges();
}
など:
public void PopulateOurDatabase()
{
dbCntxt = new DatabaseContext();
stdnt = new Student {StudentID = 1, FirstName = "FN", LastName = "LN", Age = 27, Sex = "Male", ContactNumber = "123456", Email = "[email protected]", AcademicYear = 1, AcademicDegree = "Electrical Engineering", AcademicSubject = "blabla" };
dbCntxt.Students.AddOrUpdate(stdnt);
dbCntxt.SaveChanges();
を以前の二つの関数ますHome Controllerコンストラクタで呼び出すことができます。
public class HomeController : Controller
{
private DatabaseContext dbCntxt;
private ApplicationDbContext context;
private Student stdnt;
public HomeController()
{
PopulateOurDatabase();
PopulateAspNetTables();
}
....
....
}
これで、probl二つ目は、常にエラーをスローしながら、EMが、私はコンストラクタで二つの機能を呼び出すたび、最初の1が正常に動作することです:
SqlException: Invalid object name 'dbo.AspNetUsers'.
私は関数を呼び出す順序を変更した場合、AspNetUsersテーブルう私は生徒のテーブルに関して同じエラーが発生しますが、適切に作成されます。これは、サーバーエクスプローラではっきりと確認できます。
どうしてですか?
私自身のコンテキストを作成したので、これは2つの異なるコンテキストを使用しているために発生しますか?この場合のベストプラクティスは何ですか?
ありがとうございます。
残念ながら、これはうまくいきませんでした。 – Rashedkoutayni