Maison >développement back-end >C++ >Comment mettre en œuvre des relations multiples-à-plusieurs avec des domaines supplémentaires dans l'entité Core Framework?
Entité Core Framework: Gestion des relations multiples-à-plusieurs avec des champs supplémentaires
L'API CLAT de l'entité Core a des limites lors de la personnalisation des tableaux d'association relationnelle de plusieurs à plusieurs. Cet article détaille une solution de contournement pour ajouter des champs supplémentaires à la table de jointure.
conception du modèle
Considérez cet exemple de modèle:
<code class="language-csharp">public class Member { public int MemberID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virtual ICollection<MemberComment> MemberComments { get; set; } } public class Comment { public int CommentID { get; set; } public string Message { get; set; } public virtual ICollection<MemberComment> MemberComments { get; set; } } public class MemberComment { [Key, Column(Order = 0)] public int MemberID { get; set; } [Key, Column(Order = 1)] public int CommentID { get; set; } public virtual Member Member { get; set; } public virtual Comment Comment { get; set; } public int Something { get; set; } public string SomethingElse { get; set; } }</code>
Le tableau MemberComment
représente la table de jointure, y compris les propriétés supplémentaires Something
et SomethingElse
.
limitations et solutions de l'API courantes
Configuration directe de la table de jointure avec des champs supplémentaires à l'aide de l'API Cluent n'est pas possible. La solution consiste à implémenter deux relations un à plusieurs à la place.
Approche un à plusieurs: requêtes et opérations
Cette approche permet une requête et une manipulation de données similaires (ajoutant, mise à jour, supprimer) en tant que relation traditionnelle de plusieurs à plusieurs. Surtout, il permet le filtrage en fonction des champs supplémentaires de la table de jointure. Les suppressions en cascade fonctionneront correctement en raison des clés étrangères non nulles dans la table de jointure.
Conclusion
Alors que l'API Fluent ne prend pas directement en charge les tables de jointure personnalisées de plusieurs à plusieurs, en utilisant deux relations un à plusieurs fournit un équivalent fonctionnel, offrant la flexibilité d'inclure et d'utiliser des champs supplémentaires au sein de l'association.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!