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)