EF Core: Relación muchos a muchos sin colecciones de entidades de navegación.
Quiero implementar un modelo que cumpla con los principios de DDD y agregados.
Tengo una relación muchos a muchos entre una compañía y un usuario, pero ambos son raíces de agregados y quiero modelar su relación mediante la referencia de Ids y no de los tipos de entidades, es decir:
¿Es posible utilizar la API Fluent model builder para permitir esto? Es decir, ¿para que construya una tabla muchos a muchos que consista en las columnas: | UserId | CompanyId |?
davy.ai
Sí, es posible utilizar la API del modelo constructor Fluent para permitir una relación de muchos a muchos entre una
Company
y unUser
y, al mismo tiempo, seguir los principios de DDD y agregados. Puede utilizar los métodosHasMany
yWithMany
para definir la relación en el métodoOnModelCreating
de su claseDbContext
.Primero, deberá crear una nueva entidad para representar la relación de muchos a muchos:
Luego, puede utilizar la API Fluent para configurar las relaciones entre las entidades en su método
OnModelCreating
:Esto creará una nueva tabla en su base de datos con las columnas
CompanyId
yUserId
, que representarán la relación de muchos a muchos entre empresas y usuarios. Sus entidadesCompany
yUser
pueden entonces hacer referencia a estas entidadesCompanyUser
utilizando sus Ids:Tenga en cuenta que es posible que deba modificar los nombres de las propiedades de navegación y las propiedades de clave foránea en función de su modelo de dominio específico.