Maison > développement back-end > C++ > Comment mettre en œuvre des relations multiples à plusieurs avec des champs supplémentaires dans EF Core Code d'abord?

Comment mettre en œuvre des relations multiples à plusieurs avec des champs supplémentaires dans EF Core Code d'abord?

Linda Hamilton
Libérer: 2025-01-31 10:56:10
original
728 Les gens l'ont consulté

How to Implement Many-to-Many Relationships with Extra Fields in EF Core Code First?

les relations multiples -To-mortitiles avec des champs supplémentaires dans le code de base EF en premier "

Introduction:

Entity Framework Core (EF Core) permet de créer plusieurs relations entre les entités. Cependant, EF Core ne prend pas directement en charge le tableau de connexion de la personnalisation de ces relations. Cet article traite d'une méthode de remplacement qui utilise d'abord le code pour créer des relations multiples avec des champs supplémentaires dans le tableau d'association.

Créer une corrélation:

Nous créerons deux paires de multi-relations plutôt que de relations directes et plus. Par exemple, considérez la scène suivante:

Dans ce scénario, le membre et les entités de commentaire ont plusieurs relations, et le membre de membre représente le tableau associé des champs supplémentaires.

requête:

<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 int Something { get; set; }
    public string SomethingElse { get; set; }
    public virtual Member Member { get; set; }
    public virtual Comment Comment { get; set; }
}</code>
Copier après la connexion
Pour interroger l'association avec des champs supplémentaires, vous pouvez utiliser une technologie appelée "projection":

Opération:

Dans ce modèle, en ajoutant des entités et des relations similaires aux autres modèles de premier code:

<code class="language-csharp">// 查找 LastName = "Smith" 的成员的所有评论
var commentsOfMembers = context.Members
    .Where(m => m.LastName == "Smith")
    .SelectMany(m => m.MemberComments.Select(mc => mc.Comment))
    .ToList();</code>
Copier après la connexion
Conclusion:

Bien que le noyau EF ne prenne pas directement en charge les relations multiples multiples dans les tableaux associés du tableau d'association, il peut être utilisé pour créer des fonctions similaires avec deux paires de multi-relations. Cette méthode permet la création d'une riche corrélation avec des informations supplémentaires pour atteindre des fonctions de modélisation et de requête plus flexibles.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal