ASP.NET 5, voulait séparer la structure d'entité de Web Project

asp.net-core asp.net-core-mvc entity-framework-core

Question

J'essaie de réaliser la structure d'application ci-dessous

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

Site Web - WebAPI - Invoke Service

La plupart des exemples d'application ASP.NET 5 initialisent la structure d'entité dans le fichier de démarrage du site Web. comme .AddEntityFrameowrk () .. etc.

Besoin de savoir comment nous pouvons séparer l'entité en projet séparé et comment lancer le DBContext si nous appelons le référentiel à partir d'un projet de service (car le fichier de démarrage n'est pas disponible pour la bibliothèque de classes)

Réponse populaire

Dans des projets précédents, j'ai adopté l'approche consistant à gérer plusieurs projets ASP.NET dans une solution (ou plusieurs solutions). Cela vous donnera la possibilité de supprimer les dépendances EF de votre application Web et de faire en sorte qu’elle ne parle qu’à l’API qui gère tous les fichiers EF.

Dans le passé, j'avais créé un projet "domaine" dédié contenant tous les modèles et pouvant être référencé à la fois par votre application Web et par les projets d'API.

Donc, la structure du projet ressemblerait à ceci

Projet de domaine: contient uniquement les classes c # représentant votre modèle. Commencez avec un projet 'vide'

API: contient votre API Web. Utilise EF pour interagir avec la base de données. J'échafauderais personnellement les API de votre modèle, mais c'est un choix personnel. À l'heure actuelle, dans ASP.NET Core 1.0 RC1, le modèle d'API Web est médiocre. Je commencerais par celui "d'application Web" complet, puis je supprimerais toutes les vues, contrôleurs, scripts, etc., par défaut. échafaudez vos contrôleurs API à partir du modèle

Application Web: votre projet d'application Web principal. Commencez avec le modèle 'application Web' mais utilisez HttpClient I votre contrôleur pour utiliser l'API pour les interactions de données. Dans le passé, j'avais créé un ensemble de «classes d'assistance api» statiques pour faciliter cette tâche, mais il s'agit à nouveau d'un choix de style personnel. Référence le projet de domaine afin que vous puissiez convertir les réponses JSON entrantes en modèle .net complet



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow