Ich bin immer noch versucht, mich um LINQ zu SQL und Fremdschlüssel Beziehungen zu wickeln.Linq zu SQL Foreign Keys & Collections
Ich habe eine Tabelle namens "Parent" und eine andere namens "Children". Ich habe eine OneToMany-Beziehung, in der ein Elternteil mehrere Kinder haben kann. Mein DBML sieht ungefähr so aus:
<Table Name="" Member="Parents">
<Type Name="Parent">
<Column Member="ParentID" Type="System.String" IsPrimaryKey="true" CanBeNull="false" />
<Column Member="ChildID" Type="System.String" CanBeNull="false" />
<Association Name="Parent_Child" Member="Childs" ThisKey="ParentID" OtherKey="ParentID" Type="Child" />
</Type>
</Table>
<Table Name="" Member="Childs">
<Type Name="Child">
<Column Member="ChildID" Type="System.String" IsPrimaryKey="true" CanBeNull="false" />
<Column Member="ParentID" Type="System.String" CanBeNull="false" />
<Association Name="Parent_Child" Member="Parent" ThisKey="ParentID" OtherKey="ParentID" Type="Parent" IsForeignKey="true" />
</Type>
</Table>
In meinem Code, ich möchte gerne etwas tun:
// parent has already been loaded from the datacontext
parent.Childs = <some collection of children>
db.SubmitChanges();
Aber wenn ich es tue, dass ich die folgende Fehlermeldung erhalten:
Ein Mitglied Definieren der Identität des Objekts kann nicht geändert werden. Sie können ein neues Objekt mit einer neuen Identität hinzufügen und stattdessen das vorhandene Objekt löschen.
Kann mir jemand sagen, wie man das richtig macht?
Wurden die untergeordneten Datensätze mit dem gleichen Datenkontext oder einem anderen abgerufen? –
Sie wurden aus demselben Datenkontext abgerufen. – Addy