0

Я пытаюсь сделать небольшую настройку для профилирования информации в ASP.NET идентичности, следуя примеру на этой странице MSDN и Sample Project Идентичность 2.0 изTrouble настройки профиля в ASP.NET Идентичность

PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre 

Скорее чем добавить простое поле DateTime BirthDate, я пытаюсь добавить простое настраиваемое поле под названием «Регион» (будет выбран из списка продаж регионов продаж)

Я создал новый класс под названием Region внутри IdentityModels.cs

public class Region 
{ 
    [Key] 
    public Guid ID { get; set; } 
    public string Name { get; set; } 

    public Region() 
    { 
     this.ID = Guid.NewGuid(); 
    } 
} 

Затем я добавил класс как свойство класса ApplicationUser вместо свойства BirthDate в примере. Как так:

public class ApplicationUser : IdentityUser 
    { 
     public Region Region { get; set; } 

я затем восстановить без ошибок и запустить надстройку миграцию и обновление базы данных-например так:

PM> add-migration "Region" 
Scaffolding migration 'Region'. 
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration Region' again. 
PM> update-database 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
Applying explicit migrations: [201409280314023_Region]. 
Applying explicit migration: 201409280314023_Region. 
Running Seed method. 

База данных создается и таблица региона есть, но; Когда я пытаюсь ввести «context.Regions.AddOrUpdate» в метод Seed, «Регионы» не является допустимым членом контекста. (Я хотел бы предварительно загрузить таблицу со списком регионов)

protected override void Seed(SentinelPortal.Models.ApplicationDbContext context) 
     { 

      context.Roles.AddOrUpdate( //this is OK 

       r => r.Name, 
       new IdentityRole() { Name = "Admin"}, 
       new IdentityRole() { Name = "RegionAdmin"}, 
       new IdentityRole() { Name = "User"} 
      ); 

      context.Regions.AddOrUpdate( //This indicates that Regions doesn't exist in 'context' 
       r => r.Name, 
       new Region() { Name = "NW" }, 
       new Region() { Name = "SW" } 
      ); 
     } 

Так что мой вопрос: Почему регионы не являются частью «контекста» даже то таблица создается в БД?

ответ

0

Решено:

Ответ оказался, что мне нужно, чтобы добавить это к классу ApplicationDbContect

public System.Data.Entity.DbSet<Region> Regions { get; set; } 
Смежные вопросы