Peut-être que quelqu'un s'il vous plaît répondez à moi comment ajouter et insérer correctement des données dans une table de jointure / une relation de plusieurs à de nombreuses personnes avec l'entité framework Core, sans enregistrer plusieurs fois plusieurs fois?
Mon contexte de base de données ressemble à cela avec API fluide: p> Voici mes modèles pour l'utilisateur, le groupe et la table de jointure entre eux: P> public class AppDatabaseContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Group> Groups { get; set; }
//public DbSet<GroupMembers> GroupMembers{ get; set; }
}
...
}
3 Réponses :
Je pense que EFCORE Tracker prend soin de la situation et ne pas insérer l'enregistrement deux fois. Si cela ne peut pas insérer votre objet GROUPMEMBER dans votre atabase une fois, au lieu de mettre à jour les groupes et les utilisateurs. Qui est également meilleure performance sage, car elle ne nécessite que une requête. P>
Vous suggérez-vous de créer un DBST pour le groupe de groupe comme avec l'utilisateur et le groupe? dbset public
n'est-il pas vrai que les données des membres du groupe seront enregistrées deux fois par exemple. redondance? p>
Non. Vous définissez correctement la clé sur le groupe de groupe pour éviter que: p>
xxx pré> blockQquote>
Je ne parle pas de l'objet du groupe de groupe. Il ne sera sauvé que survolé. Je parle de groupe et d'utilisateur, le fait que l'utilisateur a des informations sur ses groupes et que le groupe a des informations sur ses membres. À partir des informations sur tous les utilisateurs, il est possible de "générer" les informations sur chaque membre de chaque groupe.
Est-ce comme ça? P>
Peut-être, mais la méthode avec la moindre générale est toujours d'avoir un
DBSet
code>. (Conseil: n'utilisez pas de noms de classe plurielle). Ensuite, tout ce dont vous avez besoin est de deux valeurs d'identifiant: p> xxx pré> Ceci peut être intégré à n'importe quel cas d'utilisation. Vous pouvez avoir des cas où seules les valeurs d'identification sont fournies à partir d'une interface utilisateur ou d'une API, ou où un groupe
ou un groupe code> ou un
est le point de départ, fournissant une valeur d'identification et Les valeurs d'identification de l'autre partie sont fournies. Tout se résume à ce petit morceau de code. P> blockquote>
Merci! Cela signifie-t-il que la liste des membres du groupe restera toujours vide dans l'utilisateur et dans le groupe? Si tel est le cas, est la seule raison de spécifier la liste à faire comprendre le modèle de relation EF?
Si vous avez un utilisateur ou un groupe attaché au contexte, EF ajoutera de nouveaux groupemember code> S à leurs collections par répartition relationnelle i>.