ID フレームワークを使用してデータベースを作成します (最初にコードを作成します) が、パッケージ マネージャーで以下のコードを実行するとエラーが発生します。
PM> Enable-Migrations -ContextTypeName FreeTime.AspMvc.Context.FreeTimeContext -Force
ここに私のエラーがあります:
IdentityUserLogin: : EntityType IdentityUserLogin
キーが定義されていません。この のキーを定義しますEntityType
。
IdentityUserRole: : EntityType IdentityUserRole
キーが定義されていません。この のキーを定義しますEntityType
。
IdentityUserLogins: EntityType: EntitySet IdentityUserLogins
IdentityUserLogin
キーが定義されていないタイプに基づいています。
IdentityUserRoles: EntityType: EntitySet IdentityUserRoles
IdentityUserRole
キーが定義されていないタイプに基づいています。
詳しくは:
ApplicationUser
他のクラスでは、 namedのプロパティ タイプと、witch user has made witch topic を保持するためUserId
の名前付き文字列のタイプの 1 つを作成しました。User
ここに例があります:
public class Topic
{
[Key]
public int TopicId { get; set; }
[ForeignKey("dbo.AspNetUsers.Id")]
public string UserId { get; set; }
public ApplicationUser User { get; set; }
}
小さな更新:ここに私のコンテキスト ファイルがあります:
public class FreeTimeContext: DbContext
{
public DbSet<Topic> Topics { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
という名前の 2 番目のコンテキスト ファイルがあることも確認しましたApplicationDbContext
。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("FreeTimeContext" /* --> this I've edited into my own name */,
throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
大きな更新:後の状態で、以下のリストのような他のことを試しました:
-
最初に、の移行を有効にしようとしました
ApplicationDbContext
。これが私が行った手順です。-
まず、次のコードを実行しました。
PM> enable-migrations -ContextTypeName FreeTime.AspMvc.Models.ApplicationDbContext -Force
これはエラーなしで行われます。
-
次に、これを実行しました:
PM> add-migration "initAspTables"
このコードでも問題ありません。
-
最後に、データベースを更新しました。
PM> データベースの更新
こちらも問題なく完了。
-
テーブルがサーバーマネージャーに作成されているかどうかを確認します→確認しますが、独自のテーブルが含まれていません。☹
結論:私が持っているものではありません。
-
私が行った2番目のことは、以下のようなコードの代わりに継承
FreeTimeContext
することです。ApplicationContext
DbContext
パブリック クラス FreeTimeContext: ApplicationDbContext { public DbSet トピック { get; 設定; } public FreeTimeContext(): ベース() { } // その他のコード }
もう一度、次のコードで移行を有効にしてみます。
PM> enable-migrations -ContextTypeName FreeTime.AspMvc.Context.FreeTimeContext -Force
しかし、私はこのエラーがあります:
タイプの
ForeignKeyAttribute
on プロパティが無効です。依存型 でナビゲーション プロパティが見つかりませんでした。Name 値は、有効なナビゲーション プロパティ名である必要があります。UserId
FreeTime.AspMvc.Models.Topic
dbo.AspNetUsers.Id
FreeTime.AspMvc.Models.Topic
詳しくは:
(クリックすると全画面表示になります)
結論:うまくいきませんでした。
手伝って頂けますか?ApplicationUser
クラスを自分のクラスと一緒にデータベースに移行するために他に何ができるかわかりません。