我有一个SQL数据库表,它连接两个其他表。如何更新EDMX在C#项目中未导入的表格
班级(表1),学生(表2)。
连接表被称为StudentClasses样子:1复合主键由2列:StudentID(从学生)的ClassID(从类)
当我加入我的数据库通过ADO我的C#项目。第一种方式是使用NET EDMX实体框架数据库,这个连接表不会被添加为自动生成的cs类文件,我猜想它是由两个外键组成的。
但是,它确实会添加到我的EDMX XML信息中(请参阅下面的摘录自EDMX)。
我的问题是,这张表包含任何正在注册课程的学生的信息。因此,如果应用程序根据用户输入在我的应用程序中注销或注册了学生,我无法通过DbContextInstance.StudentClasses.Add(studentClassObject)或DbContextInstance.StudentClasses.Add(studentClassObject)更新数据库。
是否有其他方式我应该更新此表在我的C#代码?
我的Student类确实有一个Student.Classes属性,它允许我在我的程序中操作这些数据,但是不能再推送到数据库(据我所知)。
我感谢任何帮助!
下面是XML代码,它显示ADO.NET/EDMX知道该表,尽管没有创建实体.cs自动生成的类。
<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>
类实体,应该让学生收集和当你添加新的学生到收集和保存修改它应该为StudentClasses表添加新记录。你不需要直接访问。 你也可以查看下面的链接http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx – Miguel
你是对的,Class实体自动生成的文件还有一个Students集合:“public virtual ICollection Students {get; set;}” –
zig