ASP.NET 5, quería separar el marco de la entidad del proyecto web

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

Pregunta

Estoy tratando de lograr debajo de la estructura de la aplicación

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

Sitio web - WebAPI - Servicio de Invocaciones

La mayoría de los ejemplos de aplicaciones de ASP.NET 5 inicializan el marco de la entidad en el archivo de inicio del sitio web. como .AddEntityFrameowrk () .. etc.

Necesitamos saber cómo podemos separar la Entidad en un proyecto separado y cómo iniciar el DBContext si estamos invocando el repositorio del proyecto de Servicio (ya que el archivo de inicio no está disponible para la biblioteca de clases)

Respuesta popular

En proyectos anteriores, he adoptado el enfoque de mantener múltiples proyectos ASP.NET en una solución (o soluciones múltiples). Esto le dará la posibilidad de eliminar las dependencias de EF de su aplicación web y hacer que la aplicación web solo hable con la API que maneja todos los EF

En el pasado, he creado un proyecto de 'dominio' dedicado que contiene todos los modelos y puede ser referenciado tanto por su aplicación web como por sus proyectos API.

Así la estructura del proyecto se vería así.

Proyecto de dominio: contiene solo las clases c # que representan su modelo. Comience con un proyecto 'vacío'

API: contiene su API web. Utiliza EF para interactuar con la base de datos. Personalmente pondría en orden las API de su modelo, pero esa es una elección personal. En este momento, en ASP.NET core 1.0 RC1, la plantilla de la API web es deficiente, por lo que debería comenzar con la 'aplicación web' completa y eliminar todas las vistas predeterminadas, controladores, scripts, etc. Referencias al proyecto de dominio para que pueda Scaffold sus controladores API del modelo

Aplicación web: su principal proyecto de aplicación web. Comience con la plantilla de 'aplicación web', pero use HttpClient I su controlador para usar la API para interacciones de datos. En el pasado, he creado un conjunto de 'clases de ayuda de api' estáticas para hacer esta tarea más fácil, pero esa es una elección de estilo personal nuevamente. Hace referencia al proyecto de dominio para que pueda convertir las respuestas JSON entrantes al modelo .net completo.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow