私のアプローチが完全に間違っている場合は、声をかけてください。
ASP.Net Identity 2.0 を利用しています。(MembershipDbContext で) クラスをカスタマイズしました。特に、2 つのクラスがあります。
1. CustomRoles (in fluent api renamed table to "App_CustomRoles")
2. CustomUserRoles (in fluent api renamed table to "App_CustomUserRoles")
別のコンテキスト クラス ApplicationDbContext があり、この説明ではアプリのメニュー システムに関連しています。各メニュー項目は CustomRoles と関係があります。つまり、特定の役割タイプのユーザーのみがそれらを見ることができます:
public class DbMenu
{
// Backing Fields
...
private ICollection<DbMenuRole> _dbMenuRoles;
public DbMenu()
{
...
_dbMenuRoles = new Collection<DbMenuRole>();
}
...
public virtual ICollection<DbMenuRole> DbMenuRoles
{
get { return _dbMenuRoles; }
set { _dbMenuRoles = value; }
}
public class DbMenuRole
{
...
// Foreign Keys
[Required]
public long FK_RoleId { get; set; }
...
// Associations
[ForeignKey("FK_RoleId")]
public virtual CustomRole CustomRole { get; set; }
...
}
移行を実行してコンテキストごとにデータベースを更新すると、SQL データベースには 4 つのテーブルがあり、そのうち 2 つが重複しています。
正しいもの (MembershipDbContext から):
1. App_CustomRoles
2. App_CustomUserRoles
正しくないもの (ApplicationDbContext から):
1. CustomRoles
2. CustomUserRoles
メンバーシップとアプリのナビゲーション システムを別々のコンテキスト クラスに保持したいと思います。アプリケーション コンテキストで流暢な API を試して、不適切なテーブルを適切な名前の正しいテーブルに設定しようとしましたが、ビルド エラーが発生しました。
クラスを個別のコンテキストファイルに保持しながら、これを修正するにはどうすればよいですか?
ありがとうございました。