2017-08-29 5 views
1

まあ、私のテーブルのIdentityUserRoleには、AppUser_IdとIdentityRole_Idの2つの不要な列があります。列が重複しています。IdentityUserRole C#IdentityFramework

ロール内でユーザーを登録しようとすると、問題が発生します。 UserIdからAppUser_Idにコンテンツをコピーすると、アプリが完璧に機能することが分かりました。流暢APIを通じて

は、私がキーを定義し、これは次のとおりです。IdentityUserRoleが定義されたキーを持っていなかったので、NuGetコンソールは多少の誤差が上昇したため

 modelBuilder.Entity<IdentityUserRole>() 
        .HasKey(iur => iur.UserId); 
     modelBuilder.Entity<IdentityUserLogin>() 
        .HasKey(iul => iul.UserId); 
     modelBuilder.Entity<CourseModel>() 
        .HasKey(c => c.CourseID); 
     modelBuilder.Entity<FeedbackModel>() 
        .HasKey(f => f.FeedBackId); 

私は、そうしなければならなかったので、私はやりましたそれ。

私はそれが私に何をしているのか100%確信しています。あなたの避難所として、

class IdentityUserRole 
{ 
    ... 
    public AppUser AppUser { get; set; } 
    public IdentityRole IdentityRole { get; set; } 
} 

エンティティフレームワークが自動的にAppUser_IdとIdentityRole_Id外国列を生成している: enter image description here

+0

IdentityUserRoleクラスの定義を表示できますか? – alxmitch

答えて

0

私はあなたのIdentityUserRoleクラスを疑うには次のようになります。今

が、これは私のテーブルIdentityUserRoleです AppUserおよび IdentityRoleプロパティの外部キーを指定していません。

UserIdRoleIdの列を使用する場合は、IdentityUserRoleのプロパティにアノテーションを追加する必要があります。

[ForeignKey("UserId")] 
public AppUser AppUser { get; set; } 

また、あなたの文脈で流暢なAPIを使用して関係を定義する。

IdentityUserRoleタイプのプライマリキー(例:IdentityUserRoleId)も定義する必要があります。

0

ベースを追加するだけで解決しました.OnModelCreating(modelBuilder); 'オーバーライド機能の最後に' OnModelCreating 'です。

関連する問題