ASP.NET 5 wollte das Entitätsframework von Web Project trennen

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

Frage

Ich versuche unterhalb der Anwendungsstruktur zu erreichen

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

Website - WebAPI - Ruft den Dienst auf

Die meisten ASP.NET 5-Anwendungsbeispiele initialisieren das Entitätsframework in der Startup-Datei der Website. wie .AddEntityFrameowrk () .. usw.

Sie müssen wissen, wie wir die Entity in ein separates Projekt aufteilen können und wie wir den DBContext initiieren, wenn wir das Repository aus dem Service-Projekt aufrufen (da die Startup-Datei für die Klassenbibliothek nicht verfügbar ist)

Beliebte Antwort

In früheren Projekten habe ich den Ansatz verfolgt, mehrere ASP.NET-Projekte in einer Lösung (oder mehreren Lösungen) zu verwalten. Dadurch haben Sie die Möglichkeit, die EF-Abhängigkeiten von Ihrer Webanwendung zu entfernen und die Webanwendung nur mit der API zu kommunizieren, die alle EF verarbeitet

In der Vergangenheit habe ich ein dediziertes Domänenprojekt erstellt, das alle Modelle enthält und auf das sowohl Ihre Webanwendung als auch API-Projekte verweisen können.

Also würde die Projektstruktur so aussehen

Domänenprojekt: Enthält nur c # -Klassen, die Ihr Modell darstellen. Beginnen Sie mit einem "leeren" Projekt

API: Enthält Ihre Web-API. Verwendet EF, um mit der Datenbank zu interagieren. Ich würde persönlich die APIs für Ihr Modell rüsten, aber das ist eine persönliche Entscheidung. Im Moment, in ASP.NET Core 1.0 RC1, ist die Web-API-Vorlage schlecht, also würde ich mit der vollständigen "Web-Anwendung" starten und entfernen Sie alle Standard-Ansichten, Controller, Skripte usw. Verweise das Domain-Projekt, so dass Sie können Gerüst Ihre API-Controller aus dem Modell

Web Application: Ihr wichtigstes Webanwendungsprojekt. Beginnen Sie mit der Vorlage "Webanwendung", verwenden Sie jedoch den Controller HttpClient I, um die API für Dateninteraktionen zu verwenden. In der Vergangenheit habe ich eine Reihe von statischen "api-Hilfsklassen" erstellt, um diese Aufgabe einfacher zu machen, aber das ist wieder eine persönliche Stilwahl. Verweist auf das Domänenprojekt, damit Sie eingehende JSON-Antworten in das vollständige .net-Modell konvertieren können



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow