J'ai une table de base de données SQL qui joint deux autres tables.Comment mettre à jour la table non importée par EDMX dans le projet C#
Classes (tableau 1), étudiants (tableau 2).
La table jointe est appelée StudentClasses ressemble à: 1 Composite clé primaire composée de 2 colonnes: StudentID (à partir des étudiants), ClassID (de classes)
Quand j'ajoute ma base de données à mon projet C# par ADO. Première approche de la base de données d'infrastructure NET EDMX, cette table jointe n'est pas ajoutée en tant que fichier cs de classe générée automatiquement, je suppose parce qu'elle est composée de deux clés étrangères.
Il est cependant ajouté à mes informations XML EDMX (voir ci-dessous extrait d'EDMX).
Mon problème est que cette table contient les informations pour tout étudiant étant inscrit à un cours. Donc, si l'étudiant doit être désinscrit ou inscrit pour une classe basée sur l'entrée de l'utilisateur dans mon application, je ne peux pas mettre à jour la base de données via DbContextInstance.StudentClasses.Add (studentClassObject) ou DbContextInstance.StudentClasses.Add (studentClassObject).
Y a-t-il un autre moyen de mettre à jour cette table dans mon code C#?
Ma classe Student possède une propriété pour Student.Classes, ce qui me permet de manipuler ces données dans mon programme, mais pas de les pousser dans la base de données (pour autant que je sache).
J'apprécie toute aide! Ci-dessous le code XML qui montre que l'ADO.NET/EDMX est conscient de la table, bien qu'il ne crée pas de classe .cs générée automatiquement par l'entité.
<EntityType Name="StudentClasses">
<Key>
<PropertyRef Name="StudentID" />
<PropertyRef Name="ClassID" />
</Key>
<Property Name="StudentID" Type="int" Nullable="false" />
<Property Name="ClassID" Type="int" Nullable="false" />
</EntityType>
[...]
<EntitySet Name="StudentClasses" EntityType="Self.StudentClasses" Schema="dbo" store:Type="Tables" />
[...]
<Association Name="StudentClasses">
<End Role="Classes" Type="Self.Class" Multiplicity="*" />
<End Role="Students" Type="Self.Student" Multiplicity="*" />
</Association>
[...]
<AssociationSet Name="StudentClasses" Association="Self.StudentClasses">
<End Role="Classes" EntitySet="Classes" />
<End Role="Students" EntitySet="Students" />
</AssociationSet>
[...]
<AssociationSetMapping Name="StudentClasses" TypeName="ClassroomSchedulerModel.StudentClasses" StoreEntitySet="StudentClasses">
<EndProperty Name="Classes">
<ScalarProperty Name="ClassID" ColumnName="ClassID" />
</EndProperty>
<EndProperty Name="Students">
<ScalarProperty Name="StudentID" ColumnName="StudentID" />
</EndProperty>
</AssociationSetMapping>
entité Les classes doivent avoir des étudiants collection et quand vous ajoutez de nouveaux étudiants à cette collection et économisez changements, il devrait ajouter un nouvel enregistrement à la table StudentClasses.Vous n'avez pas besoin d'accéder directement. Vous pouvez également vérifier le lien suivant http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx – Miguel
Vous avez raison, le fichier auto-généré entité de classe possède également une collection Students: "public virtual ICollection Students {get; set;}" –
zig