我有一個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