Я добавил таблицу отношений «многие-многие», используя расширенную IdentityUsers
и свою собственную пользовательскую таблицу, Systems
AppUser
происходит от IdentityUser
public class AppUser : IdentityUser
{
public AppUser() : base()
{
MySystems = new HashSet<MySystem>();
}
public virtual ICollection<MySystem> MySystems { get; set; }
}
Моя пользовательская системная таблица просто автономна:
[Table("MySystem")]
public class MySystem
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public MySystem()
{
AppUsers = new HashSet<AppUser>();
}
public virtual ICollection<AppUser> AppUsers { get; set; }
И в контексте:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<AppUser>()
.HasMany(appUser => appUser.MySystems)
.WithMany(MySystem => MySystem.AppUsers)
.Map(userMySystem =>
{
userMySystem.MapLeftKey("AppUserId");
userMySystem.MapRightKey("MySystemId");
userMySystem.ToTable("AspNetUserMySystems");
});
}
Это отлично сработало, создало таблицы, и я могу получить все свои недавно созданные MySystem
записи, использующие, например,
_context.MySystem.Find(1);
, но теперь я не могу получить доступ к также созданным AspNetUserMySystems
записям, используя, например,
_context.(table not available!)
Как я могу указать созданную таблицу как общедоступную доступны