ASP.NET Identity DbContext путаница

Приложение MVC 5 по умолчанию поставляется с этим фрагментом кода в IdentityModels.cs - этот фрагмент кода предназначен для всех операций идентификации ASP.NET для шаблонов по умолчанию:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}

Если я создаю новый контроллер с использованием представлений в Entity Framework и создаю «Новый контекст данных ...» в диалоговом окне, я получаю следующее:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace WebApplication1.Models
{
    public class AllTheOtherStuffDbContext : DbContext
    {
        // You can add custom code to this file. Changes will not be overwritten.
        // 
        // If you want Entity Framework to drop and regenerate your database
        // automatically whenever you change your model schema, please use data migrations.
        // For more information refer to the documentation:
        // http://msdn.microsoft.com/en-us/data/jj591621.aspx

        public AllTheOtherStuffDbContext() : base("name=AllTheOtherStuffDbContext")
        {
        }

        public System.Data.Entity.DbSet<WebApplication1.Models.Movie> Movies { get; set; }

    }
} 

Если я создаю другой контроллер + представление с использованием EF, например, для модели Animal, эта новая строка будет автоматически сгенерирована прямо подpublic System.Data.Entity.DbSet<WebApplication1.Models.Movie> Movies { get; set; } - нравится:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace WebApplication1.Models
{
    public class AllTheOtherStuffDbContext : DbContext
    {
        // You can add custom code to this file. Changes will not be overwritten.
        // 
        // If you want Entity Framework to drop and regenerate your database
        // automatically whenever you change your model schema, please use data migrations.
        // For more information refer to the documentation:
        // http://msdn.microsoft.com/en-us/data/jj591621.aspx

        public AllTheOtherStuffDbContext() : base("name=AllTheOtherStuffDbContext")
        {
        }

        public System.Data.Entity.DbSet<WebApplication1.Models.Movie> Movies { get; set; }
        public System.Data.Entity.DbSet<WebApplication1.Models.Animal> Animals { get; set; }

    }
} 

ApplicationDbContext (для всех вещей ASP.NET Identity) наследуется отIdentityDbContext который в свою очередь наследует отDbContext. AllOtherStuffDbContext (для моих собственных вещей) наследует отDbContext.

Итак, мой вопрос:

Какой из этих двух (ApplicationDbContext а такжеAllOtherStuffDbContext) я должен использовать для всех моих других моделей? Или я должен просто использовать автоматически сгенерированный по умолчаниюApplicationDbContext так как это не должно быть проблемой с его использованием, так как он является производным от базового классаDbContextили будут какие-то накладные расходы? Вы должны использовать только одинDbContext объект в вашем приложении для всех ваших моделей (я где-то читал), поэтому я не должен даже рассматривать использование обоихApplicationDbContext а такжеAllOtherStuffDbContext в одном приложении? Или что является лучшей практикой в MVC 5 с ASP.NET Identity?

Ответы на вопрос(4)

Ваш ответ на вопрос