one many framework foreign first entitytypeconfiguration dbmodelbuilder code entity-framework ef-code-first

entity-framework - many - fluent api entity framework core



Muchos a muchos mapeos con campos adicionales en Fluent API (1)

No puede asignarlo como muchos a muchos directamente. Si agrega un campo adicional a la tabla de conexiones y desea acceder a ese campo en la aplicación, debe promocionar su tabla de conexiones a la entidad y usar dos relaciones de uno a varios:

public class Badge { ... public virtual ICollection<UserBadge> UserBadges { get; set; } } public class User { ... public virtual ICollection<UserBadge> UserBadges { get; set; } } public class UserBadge { public int UserId { get; set; } public int BadgeId { get; set; } public string B { get; set; } public virtual Badge Badge { get; set; } public virtual User User { get; set; } }

Las convenciones predeterminadas deben definir la asignación correctamente, excepto la clave de la tabla UserBadge , que debe realizarse en Fluent-API o en anotaciones de datos.

modelBuilder.Entity<UserBadge>().HasKey(e => new { e.UserId, e.BadgeId });

Tengo una relación de muchos a muchos y quiero almacenar datos adicionales en la tabla de parejas, utilizando la API de Code First Fluent.

¿Cómo se puede lograr esto?

Mi modelo:

Un usuario puede tener 1 o más credenciales (opcional), una credencial puede pertenecer a uno o más usuarios (opcional). Quiero almacenar un campo adicional (llamado B) para que se almacene esta relación. La tabla debe llamarse UserBadges con los siguientes campos: UserId, BadgeId, B

(He visto esto anteriormente en StackOverflow here , pero el modelo es algo complejo y todavía no se ha dado una respuesta correcta)