Lorsque vous utilisez d'abord le code EF, il est impossible d'utiliser une table de connexion personnalisée pour établir une relation multi-pair. La table de connexion de gestion interne EF est cachée en dehors du modèle.
Méthode alternative: une paire de relations
Pour créer une table de connexion personnalisée avec des attributs supplémentaires, vous pouvez utiliser deux méthodes différentes de relations à un multiple:
Cela crée deux multi-relations indépendantes entre le membre et le membre et les commentaires et le membre. La table de connexion est représentée par la classe membre.
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; } }
Cette méthode présente les avantages suivants:
permet les attributs supplémentaires sur la table de connexion (comme quelque chose et quelque chose).Fournir des requêtes plus flexibles et un filtrage par les attributs de la table de connexion.
Trouvez tous les commentaires avec des membres avec des noms de famille spécifiques:
var commentsOfMembers = context.Members .Where(m => m.LastName == "Smith") .SelectMany(m => m.MemberComments.Select(mc => mc.Comment)) .ToList();
var membersWithComments = context.Members .Where(m => m.LastName == "Smith") .Select(m => new { Member = m, Comments = m.MemberComments.Select(mc => mc.Comment) }) .ToList();
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!