ASP.NET MVC, EntityFramework, DBContext, Référentiel dans un projet différent

Je suis actuellement en train de travailler sur un ASP.NET MVC 5 projet, et je suis en train de polir l'architecture du projet; le rendre aussi propre et facile pour les gens à travailler sur elle dans l'avenir que possible.

Pour commencer, j'ai porté mon EntityFramework modèles (y compris IdentityUser et AccountViewModel) pour un projet de bibliothèque de classes au sein de la même solution. C'est référencé par les principaux MVC projet pour le moment.

Cependant, je suis maintenant méditer sur la création d'une nouvelle Couche d'Accès aux Données de projet qui sera le DbContext (ou DbContexts, si je décide sur l'utilisation de plusieurs DbContexts) ainsi que la couche d'accès aux données. Quelle est la meilleure méthode à aller à ce sujet?

Ce DAL projet de référence le Modèle de projet, et le principal projet MVC ne référence que le DAL projet.

Après la lecture de cet article! Je me demandais si, en effet, le modèle de référentiel est en effet obsolète lors de l'utilisation de EntityFramework.

Donc mes deux questions principales sont:

1) quel est le meilleur moyen d'extraire DAL dans un projet distinct

2) quel est le meilleur moyen pour accéder à la base de données de contenu à l'aide de EF

source d'informationauteur teh0wner